Skip to main content
Glama
deeparchi-ai

Patent MCP Server

by deeparchi-ai

Patent MCP Server

🚀 中国专利最准确的开源 MCP。 Give your AI agent the ability to read CN patents with real accuracy — plus global coverage.

Tests Python License MCP PyPI

An MCP (Model Context Protocol) server that gives AI agents access to patent data — CN patents with CPC-aware correction, plus US/WO global coverage. Runs locally on your machine. No external API, no subscription. Always MIT.


Why Self-Deployed

  • It's just Python. Install it, your agent uses it. No server to maintain, no credential to share.

  • No API key for 80% of use cases. Patent details and claims come straight from Google Patents public pages.

  • Your data stays local. Nothing leaves your machine except the same HTTP requests a browser would make.

  • BigQuery search is optional. Only turn it on if you need full-text search across 1.4B records.


Related MCP server: Forage MCP Server

30-Second Install

pip install deeparchi-patent-mcp

Or from source:

git clone https://github.com/deeparchi-ai/patent-mcp-server.git
cd patent-mcp-server
pip install -e .

Quick Start

After pip install, the deeparchi-patent-mcp console script is on your PATH. Add this to your agent platform's MCP config:

Claude Desktop

{
  "mcpServers": {
    "patent-mcp": {
      "command": "deeparchi-patent-mcp",
      "args": []
    }
  }
}

Cursor / Windsurf / Cline

Same config as Claude Desktop above.

Hermes Agent

mcp_servers:
  patent-mcp:
    command: "deeparchi-patent-mcp"

BigQuery is optional. Without GCP_PROJECT_ID the server starts normally and the web-backed tools work with no credentials. BigQuery-backed tools return a message explaining how to enable them. To turn them on, add an env var:

{
  "mcpServers": {
    "patent-mcp": {
      "command": "deeparchi-patent-mcp",
      "args": [],
      "env": { "GCP_PROJECT_ID": "your-gcp-project" }
    }
  }
}

Running from a source checkout

{
  "mcpServers": {
    "patent-mcp": {
      "command": "python",
      "args": ["-m", "server"],
      "cwd": "/path/to/patent-mcp-server/src"
    }
  }
}

Now ask your agent:

"Get patent US-7650331-B1 and summarize the claims."


What's Included

Tool

What It Does

Needs Setup?

get_patent

Full patent details: classifications, citations (X/Y/A/D), inventors, assignees, family

No

get_patent_claims

Patent claims text — legal scope. Supports US, CN, and most countries via Google Patents

No

search_patents

Search 1.4B patents by keyword, CPC, assignee, country, date range

Optional GCP

The first two cover 80% of use cases. Zero cost. Zero setup.

CN Patent Search (v1.7.0)

Three-layer discovery for Chinese patents:

Layer

Backend

Cost

When

1. BigQuery

Google Patents Public Data

Free tier

cpc=H01L + country=CN

2. Firecrawl

Web search fallback

4 credits/query

BigQuery cost-rejects specific CPC (e.g. H01L25/065)

3. Google Patents

Detail enrichment via proxy

Free

All patent detail lookups

  • Keyword search works: query="芯片" + country=CN searches both English AND Chinese abstracts (v1.5.2 fix).

  • Assignee filter: assignee="BOE" + country=CN → company/city-level patent landscape.

  • CPC classification: Use parent CPC classes (H01L) for broader CN coverage; specific CPC codes (H01L25/065) trigger web fallback.

  • See SEARCH_GUIDE.md for detailed search strategy and tested CPC codes.


If you need search_patents, add a GCP project:

  1. Create a GCP project with BigQuery enabled

  2. Create a service account, download JSON key

  3. Set env vars:

    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"
    export GCP_PROJECT_ID="your-project-id"
  4. Copy the wrapper template and fill in your paths:

    cp run.sh.example run.sh
    # Edit run.sh → set your GCP paths

BigQuery free tier: 1 TB/month — individual use is essentially free.


Advanced: Team Server (HTTP/SSE)

Need multiple people to share one patent-mcp instance? Start it as an HTTP server:

cp run-http.sh.example run-http.sh
# Edit → set GCP creds (skip if only using web tools)
PORT=8090 ./run-http.sh

Team members connect with:

mcp_servers:
  patent-mcp:
    url: "http://<server-ip>:8090/sse"

A systemd service template is included for production deployment.


How It Works

┌──────────────┐     ┌───────────────────────────────────────┐
│  AI Agent    │────▶│  patent-mcp-server                    │
│  (Claude,    │     │  (runs on YOUR machine)               │
│   Cursor,    │     │                                       │
│   Hermes)    │     │  search_patents:                      │
│              │     │    ┌──────────┐    ┌───────────────┐  │
│              │     │    │ BigQuery │───▶│ Firecrawl     │  │
│              │     │    │ (primary)│    │ (CN fallback) │  │
│              │     │    └──────────┘    └───────┬───────┘  │
│              │     │                           │           │
│              │     │  get_patent / get_patent_claims:      │
│              │     │    ┌──────────────────────┐           │
│              │     │    │ Google Patents (web) │           │
│              │     │    │ → BigQuery fallback  │           │
│              │     │    └──────────────────────┘           │
└──────────────┘     └───────────────────────────────────────┘
  • Web scraping for details — fast (~1.5s), free, no credentials

  • BigQuery for search — 1.4B records, CN full-text, optional

  • Firecrawl for CN fallback — kicks in when BigQuery cost-rejects specific CPC queries

  • Smart fallback — every tool tries web first, auto-falls to BigQuery if you have it


Tools Reference

get_patent

get_patent(publication_number="US-7650331-B1")

Returns: classifications, citations (X/Y/A/D prior art markers), family ID, dates, inventors, assignees. Cites prior art markers so your agent can assess novelty at a glance.

CN patent note: Google Patents web scraping provides machine-translated English data for CN patents. CPC codes from web scraping are empty (JS-rendered). For CPC, use BigQuery path.

get_patent_claims

get_patent_claims(publication_number="US-7650331-B1")

Returns: full claims text. Supports US, CN (machine-translated English), and most countries via Google Patents web scraping.

search_patents

search_patents(cpc="G06N", country="CN", after="2023-01-01", limit=5)
search_patents(assignee="TSMC", country="CN")
search_patents(query="芯片", country="CN")          # keyword search (CN: searches both EN+ZH)

Search 1.4B patents by keyword, CPC classification, assignee, country, date range. For CN patents, keyword search scans both English and Chinese abstracts.

Cost control: Queries require at least one filter (cpc/country/assignee/after). A dry-run budget guard rejects queries over 50 GB. When BigQuery rejects a CN CPC query (e.g., H01L25/065 → 256 GB), the web fallback automatically searches via Firecrawl.

See SEARCH_GUIDE.md for best practices and docs/cn-cpc-correction-table.md for tested CPC codes.


Development

pip install -e ".[dev]"

pytest tests/ -v          # 32 tests, ~1.5s
ruff check src/ tests/    # lint
mypy src/                 # type check

License

MIT — see LICENSE.


Author

DeepArchi OPC — AI agent infrastructure for enterprise architecture.

Available Tools

11 tools
batch_get_cited_byA

Get cited-by counts and lists for multiple patents in a single call. Returns list of {publication_number, cited_by_count, cited_by_patents, cited_by_url}. Max 10 patents per call.

ParametersJSON Schema
NameRequiredDescriptionDefault
publication_numbersYesPatent publication numbers (e.g. CN110286864A)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the return shape and the 10-patent limit, and 'Get' implies a read-only operation, but it says nothing about behavior on invalid or unknown publication numbers, partial failures, result ordering, or whether citations include non-patent literature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first states the operation and the return shape, the second states the hard limit. Nothing is padded, though the field list is dense inline prose that could be marginally cleaner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the inline return field list ({publication_number, cited_by_count, cited_by_patents, cited_by_url}) is exactly what is needed for the agent to know what comes back, and the batch cap is stated. Missing details about error handling are minor for a simple read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter and schema description coverage is 100%, with the example format (CN110286864A) already documented in the schema. The description adds only the batch-size constraint, which is relevant semantics but not parameter-level clarification beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get cited-by counts and lists') and scopes it to the batch case with 'for multiple patents in a single call', which implicitly separates it from the sibling get_cited_by. It never names that sibling directly, so the differentiation requires the agent to infer it from the plural framing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the agent can infer this is for multiple patents, and the 'Max 10 patents per call' constraint tells it when to be careful. However, there is no explicit guidance on choosing this over get_cited_by for a single patent, or what to do when more than 10 numbers are needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batch_get_patentsA

Get full details for multiple patents in a single call. Much faster than calling get_patent N times separately. Returns list of PatentDetail objects. Max 20 patents per call.

ParametersJSON Schema
NameRequiredDescriptionDefault
publication_numbersYesPatent publication numbers (e.g. CN110286864A)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses the hard limit of 20 patents per call and the return type, but says nothing about what happens on exceeding the limit, error/failure handling for invalid publication numbers, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, all earning their place: purpose, sibling comparison, return shape, and limit. The core value proposition (batch speed) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter batch read with no output schema, the description covers purpose, return type, and the batch ceiling. Minor gaps remain around limit-exceeded behavior and failure handling, but nothing an agent needs in order to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, including an example format (CN110286864A), so the schema already documents it fully. The description adds only the implicit constraint that the array size is capped at 20, which is baseline-level value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get full details for multiple patents in a single call') and explicitly distinguishes itself from the sibling get_patent by framing the batch operation as faster than N separate calls. It also names the return shape (list of PatentDetail objects).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context by contrasting with get_patent N times and states the batch ceiling (max 20 per call), which tells the agent when this is the right choice. It stops short of an explicit when-not rule (e.g. prefer get_patent for a single lookup).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bidirectional_citation_graphA

Build full bidirectional citation graph for a company's core patents. Searches for company's patents on Google Patents, then fetches forward and backward citations for each. If competitor_keywords provided, also runs competitor citation matrix. Returns: patents list, forward_graph, backward_graph, competitor_matrix.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax patents to analyze (default 10)
assignee_nameYesCompany name for patent search, e.g. 'Wuhan Carbit'
competitor_keywordsNoOptional competitor substrings, e.g. 百度, 华为

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the internal pipeline (Google Patents search, then forward and backward citation fetches, optional competitor matrix). It does not state that the operation is read-only, that it performs many sequential network calls with associated latency/cost, or how partial failures are handled. Adequate but incomplete for a multi-step network tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the purpose, then the mechanism, then the conditional branch and return fields. No sentence is redundant and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema or annotations, and the description compensates by listing the returned artifacts (patents list, forward_graph, backward_graph, competitor_matrix). All three parameters are documented and the conditional path is explained, though operational caveats like latency and read-only behavior are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds real semantics beyond the schema by explaining that competitor_keywords triggers an additional competitor citation matrix. It also implies the graph scope is bounded by the company's core patents, complementing the limit parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Build full bidirectional citation graph') and immediately scopes it to a company's core patents. The word 'bidirectional' cleanly distinguishes it from the directional siblings get_cited_by and batch_get_cited_by, and the mention of the competitor matrix separates it from competitor_citation_matrix.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the conditional trigger for one behavior ('If competitor_keywords provided, also runs competitor citation matrix'), which is useful. However, it never says when to choose this tool over get_cited_by, batch_get_cited_by, or competitor_citation_matrix, so usage relative to alternatives is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_summaryA

Get a quick patent portfolio summary for a company. Input a company name (Chinese or English), returns total patent count, top technology areas, jurisdiction coverage, activity level, and risk assessment. Zero BigQuery cost — scrapes Google Patents directly. Best for: initial company screening, competitor overview, due diligence triage. Typical latency: 5-10s.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_nameYesCompany name in Chinese or English. e.g. '正浩创新', 'Anker Innovations', 'DJI'

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does substantial work: it discloses the data source ('scrapes Google Patents directly'), the cost profile ('Zero BigQuery cost'), and expected latency (5-10s). It omits auth requirements, rate limits, and failure modes, but the disclosed operational traits are well above baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then outputs, cost, use cases, and latency in a compact block. The enumerated return fields are dense but justified since no output schema exists; each sentence carries information rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating returned fields (total count, top tech areas, jurisdiction coverage, activity level, risk assessment), plus cost and latency. A practitioner could call it correctly; only cross-sibling routing guidance is thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single company_name parameter is fully documented in the schema, including Chinese/English examples. The description's mention of 'Chinese or English' duplicates the schema, so it adds no meaning beyond structured data — baseline 3 for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get a quick patent portfolio summary for a company') and immediately frames it as an aggregate/portfolio-level tool, which implicitly separates it from the patent-level siblings like get_patent or get_patent_claims.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names three concrete scenarios ('initial company screening, competitor overview, due diligence triage'), giving an agent a clear sense of when this is the right entry point. It stops short of naming an alternative sibling or stating when NOT to use it (e.g., when you already have a company ID and want full results).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

competitor_citation_matrixA

Check if a set of target patents are cited by competitors. Searches each patent's cited-by list and matches citing assignees against competitor keywords (case-insensitive substring). Returns matrix: {patent: [{citing_patent, title, assignee, matched_keyword}]} and summary counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
competitor_keywordsYesCompetitor assignee substrings, e.g. 百度, Baidu, 华为
publication_numbersYesPatent numbers to check (e.g. CN110286864A)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does disclose the non-obvious behavior: per-patent cited-by traversal, case-insensitive substring matching of assignees, and the exact return structure. It omits rate limits, handling of invalid publication numbers, and pagination, but the core algorithmic behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose first, matching mechanism second, return shape last. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly explains the return shape (matrix plus summary counts), which is essential. Largely complete for a two-parameter read tool, though edge cases like empty matches or invalid patent numbers are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented with examples, so the schema does the heavy lifting. The description reinforces the keyword matching semantics (case-insensitive substring) but adds no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: checking whether target patents are cited by competitors, with the exact matching mechanism named. This is clearly distinguishable from siblings like get_cited_by (unfiltered) and bidirectional_citation_graph.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (filtering citing assignees by competitor keywords) but never states it explicitly or names alternatives such as get_cited_by for an unfiltered cited-by list. Usage must be inferred from the sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cited_byB

Get backward citations (who cites this patent). Returns cited_by_count (int) and cited_by_patents (list of {publication_number, title, assignee}). Extracted from Google Patents HTML.

ParametersJSON Schema
NameRequiredDescriptionDefault
publication_numberYesPatent publication number, e.g. 'US-7650331-B1', 'CN-110286864-A'

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose the data source ('Extracted from Google Patents HTML') and enumerates return fields, implying a read-only scraping operation, but says nothing about auth, rate limits, missing-data behavior, or accuracy/freshness caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core purpose, then return shape, then provenance. Every sentence carries information; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read tool with no output schema, describing the returned fields (cited_by_count, cited_by_patents structure) closes the main information gap. Only the missing routing guidance against siblings keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and there is a single parameter with a concrete example format, so the schema fully documents the input. The description adds no format syntax or constraint beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource and clarifies direction with '(who cites this patent)', which is genuinely useful given the bidirectional_citation_graph sibling. It doesn't explicitly name the sibling alternatives (batch_get_cited_by, bidirectional_citation_graph), so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no exclusions, and no mention of batch_get_cited_by or bidirectional_citation_graph, which are the obvious alternative entry points for citation data. The agent must infer from the name alone when this single-patent version is preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_patentA

Get full patent details by publication number (DOCDB format). Returns classifications, citations, family ID, dates, inventors, assignees. Citations include X/Y/A/D markers for prior art analysis. X=relevant if taken alone, Y=relevant if combined.

ParametersJSON Schema
NameRequiredDescriptionDefault
publication_numberYesPatent publication number, e.g. 'US-7650331-B1', 'CN-103257828-A'

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so reasonably: it discloses the return surface (classifications, citations, family ID, dates, inventors, assignees) and the DOCDB format requirement, and explains the X/Y citation markers, which is genuine domain context beyond the name. It omits edge cases like invalid-number behavior, but for a read-only lookup this is solid disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action, followed by return contents and the citation-marker interpretation. Every sentence contributes; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is the only source for return-value expectations, and it enumerates the payload fields well. Minor gaps remain (no paging/error behavior), but for a single-record lookup it is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is a single parameter, so the baseline is 3. The description reinforces the DOCDB format constraint, but the schema's own example ('US-7650331-B1') already conveys the expected format, so the description adds little beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get full patent details') and scopes it by publication number in DOCDB format, then enumerates the returned data. This effectively distinguishes it from narrower siblings like get_patent_claims or get_legal_status, though it never names those alternatives directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this versus siblings such as get_patent_claims, get_legal_status, or batch_get_patents for multiple numbers. The agent must infer that 'full details' means the general-purpose lookup, and there are no stated exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_patent_claimsA

Get patent claims text by publication number. Claims define the legal scope of patent protection. Supports US, CN, and most other countries via Google Patents.

ParametersJSON Schema
NameRequiredDescriptionDefault
publication_numberYesPatent publication number, e.g. 'US-7650331-B1', 'CN-103257828-A'

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden, and it does disclose useful behavioral context: data coverage across US, CN, and most other countries via Google Patents. It does not mention return format beyond 'text', rate limits, or failure behavior for unknown publication numbers, so a mid score is warranted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, and nothing is redundant. The middle sentence is slightly educational but earns its place by justifying why an agent would fetch claims.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter retrieval tool with no output schema, the description covers what it fetches, the identifier to use, and country coverage. It is close to sufficient, with only minor gaps around return format and error behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter with 100% schema coverage and concrete example formats ('US-7650331-B1', 'CN-103257828-A'), so the schema does the heavy lifting. The description only restates 'by publication number' and adds no format or parsing detail beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (get patent claims text) and keys off a publication number, which clearly separates it from siblings like get_patent, get_legal_status, or search_patents. It could be sharper by explicitly noting it returns claims only rather than the full patent, but the resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied ('Claims define the legal scope of patent protection') which hints at when an agent should want claims rather than a full patent, but it names no alternative tools or explicit when-not conditions. No routing guidance is given despite several closely related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_patent_familyA

Get patent family members for a patent. Finds family_id from BigQuery, then returns ALL patents sharing that family_id (same invention filed in different countries). Returns family_id, member_count, and members list with publication_number, country_code, kind_code, filing_date, grant_date, title for each.

ParametersJSON Schema
NameRequiredDescriptionDefault
publication_numberYesPatent publication number, e.g. 'US-7650331-B1', 'CN-110286864-A'

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does well: it discloses the two-step mechanism (BigQuery family_id lookup, then a broad unfiltered retrieval of ALL members), which sets expectations about scope and latency. It omits edge-case behavior (e.g., what happens when no family_id exists) and any auth/rate-limit notes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the core purpose front-loaded, followed by the lookup mechanism and the return shape. Every sentence carries information, including the BigQuery detail, which usefully hints at a multi-step lookup.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schema, the description correctly enumerates the return payload (family_id, member_count, and member fields), which is exactly what an agent needs to consume the result. It stops short of describing failure/empty-result behavior for an unknown or family-less publication number.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter is documented with format examples in the schema, so baseline 3 applies. The description adds nothing about the identifier format beyond what the schema already shows.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get patent family members for a patent') and explains the domain concept ('same invention filed in different countries'), which cleanly separates it from siblings like get_patent, get_patent_claims, and get_cited_by.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the resource name rather than stated: an agent can infer you call this when you want international family members instead of the patent record itself, but there is no explicit when-to-use/when-not guidance or named alternative such as get_patent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_patentsA

Search global patents by keyword, country, CPC classification, or date range. At least one of country, cpc, or after must be provided to control query cost. Returns patent summaries with titles, abstracts, inventors, assignees, and CPC codes. CN patents include Chinese titles and abstracts.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpcNoCPC classification code prefix, e.g. 'G06F40', 'H01L'
afterNoEarliest filing date, format YYYY-MM-DD
limitNoMaximum results (default 10, max 50)
queryNoOptional keyword/technology area/inventor name to search
beforeNoLatest filing date, format YYYY-MM-DD
statusNoPatent status filter
countryNoCountry code filter, e.g. 'CN', 'US', 'EP'
assigneeNoOptional assignee/organization name filter (fuzzy match on harmonized names). Use for company-level or city-level analysis, e.g. 'HEFEI', 'BOE', 'HUAWEI'.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the cost-control requirement, the shape of the returned data (titles, abstracts, inventors, assignees, CPC codes), and a locale-specific behavior (CN patents include Chinese titles and abstracts). It does not mention pagination, rate limits, or auth, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all load-bearing: purpose with facets first, the cost-control constraint second, and the return-shape/locale notes last. No filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, 100% schema coverage, and no output schema, the description supplies the missing pieces an agent needs: the prerequisite filter constraint and a summary of the return payload including CN-specific behavior. Minor gaps remain around result ordering and whether limit is the only pagination mechanism, but nothing essential to calling it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds a genuine cross-parameter constraint absent from the schema: at least one of country, cpc, or after is required. It also clarifies that query is optional and that results are summaries, both of which are not obvious from the schema defaults alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Search) and resource (global patents) and enumerates the four filterable facets (keyword, country, CPC, date range), so an agent knows exactly what the tool does. It does not explicitly contrast itself with siblings like get_patent or get_cited_by, but the search-vs-fetch distinction is clear from the phrasing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an actionable usage constraint: at least one of country, cpc, or after must be provided to control query cost. That is clear operational guidance for selecting and shaping a call, though it stops short of naming an alternative tool for the cases where the constraint can't be met.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv1.9.2
    • First observedbatch_get_cited_by
    • First observedbatch_get_patents
    • First observedbidirectional_citation_graph
    • First observedcompany_summary
    • First observedcompetitor_citation_matrix
    • First observedget_cited_by
    • First observedget_legal_status
    • First observedget_patent
    • First observedget_patent_claims
    • First observedget_patent_family
    • First observedsearch_patents

TDQS

A3.8/5.0

Scored across 11 tools

Disambiguation4/5

Most tools target distinct resources/actions (claims, legal status, family, search, details). However get_cited_by, batch_get_cited_by, bidirectional_citation_graph, and competitor_citation_matrix all center on citation data, which could cause some misselection, though descriptions clarify single vs batch vs graph vs competitor scope.

Naming Consistency4/5

A dominant verb_noun pattern (get_patent, search_patents, get_patent_claims, get_legal_status, get_patent_family, get_cited_by) with a consistent batch_ prefix is clear. A few noun-phrase outliers (bidirectional_citation_graph, competitor_citation_matrix, company_summary) lack verbs but remain readable.

Tool Count5/5

11 tools is well-scoped for a patent analysis server, with each tool earning its place across details, claims, legal status, family, citations, search, batch variants, and company screening.

Completeness4/5

Strong coverage of the patent lifecycle: details, claims, legal status, family, citations, search, and portfolio summary. Minor gaps exist (e.g. no direct assignee/inventor patent listing or full description/figures retrieval), but core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server for the AI Patent Search Generator — 11 tools for patent intelligence: dossier (claims, citations, family, classifications, examiner stats), prosecution (USPTO file wrappers), oa_analyze (AI Office Action analysis), search/query (Google Patents multi-strategy), similar, citations, family, examiner, cpc, balance. Install: npx -y patent-search-mcp-server
    11
    43 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP tool server that gives any AI agent the ability to search, scrape, and analyze content across the internet.
    42
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables AI agents to generate, search, and reason over knowledge graphs from code, databases, docs, and open-data portals without requiring an LLM or API key.
    Apache 2.0