MCP App Store

Overview

FindIP searches patents by meaning, not just keywords. Describe a problem, a solution, or a technology in plain language and get the most relevant patents across the US, China, Japan, Korea, and Europe. Explore filing trends, drill into specific sections and claims, and analyze the patent landscape — all from the conversation.

Tools

fetch

ChatGPT
Deep Research compatible fetch — single string parameter. Returns {id, title, text, url, metadata} for the publication. Body uses the smart section (title + biblio + abstract + claim 1) to keep token cost low for multi-document Deep Research workflows. Not for normal conversations — there, use findip_get_patent_details (multiple patents × sections) or findip_get_patent_section.

fetch

ChatGPT
Deep Research compatible fetch — single string parameter. Returns {id, title, text, url, metadata} for the publication. Body uses the smart section (title + biblio + abstract + claim 1) to keep token cost low for multi-document Deep Research workflows. Not for normal conversations — there, use findip_get_patent_details (multiple patents × sections) or findip_get_patent_section.

fetch

ChatGPT
Deep Research compatible fetch — single string parameter. Returns {id, title, text, url, metadata} for the publication. Body uses the smart section (title + biblio + abstract + claim 1) to keep token cost low for multi-document Deep Research workflows. Not for normal conversations — there, use findip_get_patent_details (multiple patents × sections) or findip_get_patent_section.

findip_find_applicant

ChatGPT
출원인 입력을 대표명(entity_id) 후보로 해석 — 5개국 통합 검색 전 단계 (MANDATORY). Purpose — Resolve a free-form applicant string (any of 5 languages) into canonical entity_id values for cross-country deduplicated retrieval. A single corporation has many surface forms (삼성전자주식회사, Samsung Electronics Co., Ltd., 三星电子株式会社, …); the raw applicant filter only matches one variant. This tool maps them to one harmonized name. Use whenever the user names a company in findip_search_patents / findip_analyze_trends. Returns{candidates[]: {entity_id, pub_count, share}, top1_dominance, recommendation: 'auto'|'ask', total_pubs}. Decision - 'auto' → use candidates[0].entity_id. - 'ask' → use context (Samsung's display patents → SAMSUNG DISPLAY); group near-duplicates (삼성전자주식회사 + 삼성전자 주식회사) into one list silently; ask user only when truly distinct entities (Electronics vs SDI vs Display). - empty candidates[] → not indexed; tell the user (no fallback). Always pass entity_ids as a LIST in ONE call to findip_search_patents / findip_analyze_trends. Do NOT call multiple times for the same company. Known limit — single-space variants are split into separate entries; treat them as one entity. Examples - findip_find_applicant(q='華為')HUAWEI TECH CO LTD - findip_find_applicant(q='Samsung', top_n=10) → ELECTRONICS, SDI, DISPLAY, ELECTRO-MECH, … (ask)

findip_find_applicant

ChatGPT
출원인 입력을 대표명(entity_id) 후보로 해석 — 5개국 통합 검색 전 단계 (MANDATORY). Purpose — Resolve a free-form applicant string (any of 5 languages) into canonical entity_id values for cross-country deduplicated retrieval. A single corporation has many surface forms (삼성전자주식회사, Samsung Electronics Co., Ltd., 三星电子株式会社, …); the raw applicant filter only matches one variant. This tool maps them to one harmonized name. Use whenever the user names a company in findip_search_patents / findip_analyze_trends. Returns{candidates[]: {entity_id, pub_count, share}, top1_dominance, recommendation: 'auto'|'ask', total_pubs}. Decision - 'auto' → use candidates[0].entity_id. - 'ask' → use context (Samsung's display patents → SAMSUNG DISPLAY); group near-duplicates (삼성전자주식회사 + 삼성전자 주식회사) into one list silently; ask user only when truly distinct entities (Electronics vs SDI vs Display). - empty candidates[] → not indexed; tell the user (no fallback). Always pass entity_ids as a LIST in ONE call to findip_search_patents / findip_analyze_trends. Do NOT call multiple times for the same company. Known limit — single-space variants are split into separate entries; treat them as one entity. Examples - findip_find_applicant(q='華為')HUAWEI TECH CO LTD - findip_find_applicant(q='Samsung', top_n=10) → ELECTRONICS, SDI, DISPLAY, ELECTRO-MECH, … (ask)

findip_find_applicant

ChatGPT
출원인 입력을 대표명(entity_id) 후보로 해석 — 5개국 통합 검색 전 단계 (MANDATORY). Purpose — Resolve a free-form applicant string (any of 5 languages) into canonical entity_id values for cross-country deduplicated retrieval. A single corporation has many surface forms (삼성전자주식회사, Samsung Electronics Co., Ltd., 三星电子株式会社, …); the raw applicant filter only matches one variant. This tool maps them to one harmonized name. Use whenever the user names a company in findip_search_patents / findip_analyze_trends. Returns{candidates[]: {entity_id, pub_count, share}, top1_dominance, recommendation: 'auto'|'ask', total_pubs}. Decision - 'auto' → use candidates[0].entity_id. - 'ask' → use context (Samsung's display patents → SAMSUNG DISPLAY); group near-duplicates (삼성전자주식회사 + 삼성전자 주식회사) into one list silently; ask user only when truly distinct entities (Electronics vs SDI vs Display). - empty candidates[] → not indexed; tell the user (no fallback). Always pass entity_ids as a LIST in ONE call to findip_search_patents / findip_analyze_trends. Do NOT call multiple times for the same company. Known limit — single-space variants are split into separate entries; treat them as one entity. Examples - findip_find_applicant(q='華為')HUAWEI TECH CO LTD - findip_find_applicant(q='Samsung', top_n=10) → ELECTRONICS, SDI, DISPLAY, ELECTRO-MECH, … (ask)

findip_get_coverage

ChatGPT
데이터 커버리지 조회 — 5개국 색인 문서 수와 날짜 범위. Purpose — Avoid false negatives from out-of-range filters. Call before tightening filing_date_from / publication_date_from, or when the user asks about a specific year/country boundary. NOT for — repeated calls in one conversation; cache (stable per hour). Returns{<country>: {count, from, to}} for KR/US/CN/JP/EP.

findip_get_coverage

ChatGPT
데이터 커버리지 조회 — 5개국 색인 문서 수와 날짜 범위. Purpose — Avoid false negatives from out-of-range filters. Call before tightening filing_date_from / publication_date_from, or when the user asks about a specific year/country boundary. NOT for — repeated calls in one conversation; cache (stable per hour). Returns{<country>: {count, from, to}} for KR/US/CN/JP/EP.

findip_get_coverage

ChatGPT
데이터 커버리지 조회 — 5개국 색인 문서 수와 날짜 범위. Purpose — Avoid false negatives from out-of-range filters. Call before tightening filing_date_from / publication_date_from, or when the user asks about a specific year/country boundary. NOT for — repeated calls in one conversation; cache (stable per hour). Returns{<country>: {count, from, to}} for KR/US/CN/JP/EP.

findip_get_patent_details

ChatGPT
특허 상세 본문 조회 — 공개/등록번호(또는 출원번호) 기준 본문 마크다운 반환. Purpose — Deterministic body fetch by patent number, no ranking. Use after the user names a specific patent or as a follow-up to findip_search_patents / findip_analyze_trends. Number kind — patent_ids defaults to publication / registration numbers. If the user gives a Korean application number (출원번호, e.g. '10-2012-0151138'), you MUST set id_type='application' — application and publication numbers look identical and cannot be told apart by shape, so the kind must be stated. It resolves to the granted patent if one exists, else the publication. NOT for — topic-only search (use findip_search_patents). For a single section of one patent, findip_get_patent_section is more token-efficient. Sections kwarg — comma-separated subset of title,abstract,claims,description. Omit for full body. Restrict + batch 20–50 at a time to control response size. Returns{patents[]} where each entry is {patent_id, metadata, content (markdown), representative_figure?} or {patent_id, error:'not_found'}. Rendering — For a FULL single-patent detail view ("자세히/상세히 보여줘"), do NOT fetch the body here — instead give the public detail page link https://findip.ai/p/{publication_id} inline (server rule 5). Use this tool only for a specific section or a multi-patent comparison: single short section (title/abstract) → inline; multi-patent comparison or body >~6 lines → HTML artifact/canvas (Claude=artifact, ChatGPT=canvas) per the global rendering policy (typography-led — no cards/boxes); inline elsewhere. Drawings: call findip_get_patent_drawing(pub, filename) separately so the client renders the figure natively (no token blow-up).

findip_get_patent_details

ChatGPT
특허 상세 본문 조회 — 공개/등록번호(또는 출원번호) 기준 본문 마크다운 반환. Purpose — Deterministic body fetch by patent number, no ranking. Use after the user names a specific patent or as a follow-up to findip_search_patents / findip_analyze_trends. Number kind — patent_ids defaults to publication / registration numbers. If the user gives a Korean application number (출원번호, e.g. '10-2012-0151138'), you MUST set id_type='application' — application and publication numbers look identical and cannot be told apart by shape, so the kind must be stated. It resolves to the granted patent if one exists, else the publication. NOT for — topic-only search (use findip_search_patents). For a single section of one patent, findip_get_patent_section is more token-efficient. Sections kwarg — comma-separated subset of title,abstract,claims,description. Omit for full body. Restrict + batch 20–50 at a time to control response size. Returns{patents[]} where each entry is {patent_id, metadata, content (markdown), representative_figure?} or {patent_id, error:'not_found'}. Rendering — For a FULL single-patent detail view ("자세히/상세히 보여줘"), do NOT fetch the body here — instead give the public detail page link https://findip.ai/p/{publication_id} inline (server rule 5). Use this tool only for a specific section or a multi-patent comparison: single short section (title/abstract) → inline; multi-patent comparison or body >~6 lines → HTML artifact/canvas (Claude=artifact, ChatGPT=canvas) per the global rendering policy (typography-led — no cards/boxes); inline elsewhere. Drawings: call findip_get_patent_drawing(pub, filename) separately so the client renders the figure natively (no token blow-up).

findip_get_patent_details

ChatGPT
특허 상세 본문 조회 — 공개/등록번호(또는 출원번호) 기준 본문 마크다운 반환. Purpose — Deterministic body fetch by patent number, no ranking. Use after the user names a specific patent or as a follow-up to findip_search_patents / findip_analyze_trends. Number kind — patent_ids defaults to publication / registration numbers. If the user gives a Korean application number (출원번호, e.g. '10-2012-0151138'), you MUST set id_type='application' — application and publication numbers look identical and cannot be told apart by shape, so the kind must be stated. It resolves to the granted patent if one exists, else the publication. NOT for — topic-only search (use findip_search_patents). For a single section of one patent, findip_get_patent_section is more token-efficient. Sections kwarg — comma-separated subset of title,abstract,claims,description. Omit for full body. Restrict + batch 20–50 at a time to control response size. Returns{patents[]} where each entry is {patent_id, metadata, content (markdown), representative_figure?} or {patent_id, error:'not_found'}. Rendering — For a FULL single-patent detail view ("자세히/상세히 보여줘"), do NOT fetch the body here — instead give the public detail page link https://findip.ai/p/{publication_id} inline (server rule 5). Use this tool only for a specific section or a multi-patent comparison: single short section (title/abstract) → inline; multi-patent comparison or body >~6 lines → HTML artifact/canvas (Claude=artifact, ChatGPT=canvas) per the global rendering policy (typography-led — no cards/boxes); inline elsewhere. Drawings: call findip_get_patent_drawing(pub, filename) separately so the client renders the figure natively (no token blow-up).

findip_get_patent_drawing

ChatGPT
특허 도면 이미지 — 유일한 이미지 fetch 도구. Filename source: representative_figure (search/details) or findip_get_patent_section(pub,'drawings'). Never invent filenames. One figure inline → default format='base64' → ImageContent (image bytes skip your text tokens). A gallery (multiple figures / search results) → base64-embed into an HTML artifact/canvas (Claude=artifact, ChatGPT=canvas) WITH CODE. External image URLs are blocked in chat replies / artifact sandboxes, so do NOT put the URL in the HTML first and do NOT test whether it loads — go straight to: format='url' → download bytes to disk → encode → write the base64 into the file via script. NEVER paste base64 into your reply / artifact body / write-arg (output-token blowup), and never re-read the finished HTML whole. Pass a caption and restate it in your reply text (figures may render outside the main reply).

findip_get_patent_drawing

ChatGPT
특허 도면 이미지 — 유일한 이미지 fetch 도구. Filename source: representative_figure (search/details) or findip_get_patent_section(pub,'drawings'). Never invent filenames. One figure inline → default format='base64' → ImageContent (image bytes skip your text tokens). A gallery (multiple figures / search results) → base64-embed into an HTML artifact/canvas (Claude=artifact, ChatGPT=canvas) WITH CODE. External image URLs are blocked in chat replies / artifact sandboxes, so do NOT put the URL in the HTML first and do NOT test whether it loads — go straight to: format='url' → download bytes to disk → encode → write the base64 into the file via script. NEVER paste base64 into your reply / artifact body / write-arg (output-token blowup), and never re-read the finished HTML whole. Pass a caption and restate it in your reply text (figures may render outside the main reply).

findip_get_patent_drawing

ChatGPT
특허 도면 이미지 — 유일한 이미지 fetch 도구. Filename source: representative_figure (search/details) or findip_get_patent_section(pub,'drawings'). Never invent filenames. One figure inline → default format='base64' → ImageContent (image bytes skip your text tokens). A gallery (multiple figures / search results) → base64-embed into an HTML artifact/canvas (Claude=artifact, ChatGPT=canvas) WITH CODE. External image URLs are blocked in chat replies / artifact sandboxes, so do NOT put the URL in the HTML first and do NOT test whether it loads — go straight to: format='url' → download bytes to disk → encode → write the base64 into the file via script. NEVER paste base64 into your reply / artifact body / write-arg (output-token blowup), and never re-read the finished HTML whole. Pass a caption and restate it in your reply text (figures may render outside the main reply).

findip_get_patent_section

ChatGPT
특허 본문의 한 섹션 정밀 조회 — findip_get_patent_details 보다 토큰 효율적. Purpose — Fetch one section of one patent. Avoids full-body cost when only claim 1 or description/15-20 is needed. Sectionstitle · abstract · biblio · smart (~500–1500 tokens: title+biblio+abstract+claim 1) · full · claims · description · background · drawings. `nums` selectors for claims / description: 1 | 1,3,5 | 1-5 | 1-3,5,7-9. KR [1] and US/JP [0001] both match the integer. nums is ignored for drawings. Matched paragraphs — pass section='description' + nums from search response's resources.description_matched URI to read only the hit passages. Returns — markdown str. For drawings returns a list of {filename, caption} entries; call `findip_get_patent_drawing(pub, filename, caption)` to fetch a specific image (image is not embedded here to avoid response bloat for patents with many figures). Examples - findip_get_patent_section('KR1020230012345A', 'smart') - findip_get_patent_section('KR…', 'claims', '1,3,5') - findip_get_patent_section('KR…', 'description', '15-20') - findip_get_patent_section('KR…', 'drawings') — list only; then findip_get_patent_drawing(pub, filename, caption) for the image

findip_get_patent_section

ChatGPT
특허 본문의 한 섹션 정밀 조회 — findip_get_patent_details 보다 토큰 효율적. Purpose — Fetch one section of one patent. Avoids full-body cost when only claim 1 or description/15-20 is needed. Sectionstitle · abstract · biblio · smart (~500–1500 tokens: title+biblio+abstract+claim 1) · full · claims · description · background · drawings. `nums` selectors for claims / description: 1 | 1,3,5 | 1-5 | 1-3,5,7-9. KR [1] and US/JP [0001] both match the integer. nums is ignored for drawings. Matched paragraphs — pass section='description' + nums from search response's resources.description_matched URI to read only the hit passages. Returns — markdown str. For drawings returns a list of {filename, caption} entries; call `findip_get_patent_drawing(pub, filename, caption)` to fetch a specific image (image is not embedded here to avoid response bloat for patents with many figures). Examples - findip_get_patent_section('KR1020230012345A', 'smart') - findip_get_patent_section('KR…', 'claims', '1,3,5') - findip_get_patent_section('KR…', 'description', '15-20') - findip_get_patent_section('KR…', 'drawings') — list only; then findip_get_patent_drawing(pub, filename, caption) for the image

findip_get_patent_section

ChatGPT
특허 본문의 한 섹션 정밀 조회 — findip_get_patent_details 보다 토큰 효율적. Purpose — Fetch one section of one patent. Avoids full-body cost when only claim 1 or description/15-20 is needed. Sectionstitle · abstract · biblio · smart (~500–1500 tokens: title+biblio+abstract+claim 1) · full · claims · description · background · drawings. `nums` selectors for claims / description: 1 | 1,3,5 | 1-5 | 1-3,5,7-9. KR [1] and US/JP [0001] both match the integer. nums is ignored for drawings. Matched paragraphs — pass section='description' + nums from search response's resources.description_matched URI to read only the hit passages. Returns — markdown str. For drawings returns a list of {filename, caption} entries; call `findip_get_patent_drawing(pub, filename, caption)` to fetch a specific image (image is not embedded here to avoid response bloat for patents with many figures). Examples - findip_get_patent_section('KR1020230012345A', 'smart') - findip_get_patent_section('KR…', 'claims', '1,3,5') - findip_get_patent_section('KR…', 'description', '15-20') - findip_get_patent_section('KR…', 'drawings') — list only; then findip_get_patent_drawing(pub, filename, caption) for the image

findip_search_patents

ChatGPT
특허 시맨틱 검색 — 자연어 쿼리로 5개국(KR·US·CN·JP·EP) 관련 특허를 의미 기반 검색. Purpose — Multilingual embedding (Qwen3-0.6B) + BGE-v2-m3 reranker. Describe the technical concept in one sentence; keyword bags work poorly. Query language independent of result language. Use when — exploratory topic search, competitive landscaping, prior-art style retrieval. NOT for — known publication ID (use findip_get_patent_details), pure counts/trends (use findip_analyze_trends), image bytes (use findip_get_patent_drawing). Multi-country — pass all jurisdictions in ONE call (countries=["KR","US"]); per-country rank-percentile balancing kicks in. Splitting calls degrades quality. Applicant — MANDATORY `findip_find_applicant` first. If the user names a company (any language), call findip_find_applicant(q=name) → pass applicant_entity_ids=[…] (list, ONE call, include near-duplicates like 'SAMSUNG ELECTRONICS CO LTD' + '삼성전자주식회사' + '삼성전자 주식회사'). Empty candidates → not indexed (no fallback). Returns{total, results[]} where each result has patent_id, title, country, kind_code, legal_status (GRANTED|PUBLISHED — dynamic post-grant status NOT reflected), applicants[], applicants_harmonized[], inventors[], inventors_harmonized[], application_number, family_id, filing_date, publication_date, grant_date, priority_date, ipc_codes[], similarity_score (loose), rerank_score (sort-only, never threshold), representative_figure (filename or null), chunks[] (matched passages ordered by rerank_score). Broad / multi-concept queries drift off-topic. A query mixing two concepts ("wireless-charging + IR temperature sensor") often latches onto the more common one and drops the other; a short broad term ("injection molding") scatters across unrelated fields. If results look off-topic or the ipc_codes across results are scattered/unrelated, narrow with the ipc_codes parameter — pick codes from what the results actually show (or call findip_analyze_trends for its top_ipc rows), NOT from memory. For a genuinely broad query, ask the user which sub-field they mean in plain technical language (not IPC codes), then re-search. Rendering — representative figures are shown by DEFAULT. When the client renders an HTML artifact/canvas (Claude=artifact, ChatGPT=canvas), build a gallery/table with each hit's figure base64-embedded; otherwise an inline markdown table (columns: patent_id · title · country · applicants_harmonized · filing_date · kind_code · legal_status · rerank_score) and still list every hit. Always prepend a 1–3 sentence plain-text summary. Link each `patent_id`/title to its public detail page https://findip.ai/p/{publication_id} (server rule 3); in HTML add target="_blank" rel="noopener" so it opens in a separate tab. Never link to third-party sites. For inline content use findip_get_patent_section / findip_get_patent_details. Drawings — always include each hit's representative_figure. Build the figures into the HTML result base64-embedded via code (see findip_get_patent_drawing). Never paste base64 yourself; let code write it to the file. Relatedfindip_find_applicant (before company filter), findip_get_patent_section / findip_get_patent_details (drill in), findip_analyze_trends (aggregates), findip_get_coverage (date sanity).

findip_search_patents

ChatGPT
특허 시맨틱 검색 — 자연어 쿼리로 5개국(KR·US·CN·JP·EP) 관련 특허를 의미 기반 검색. Purpose — Multilingual embedding (Qwen3-0.6B) + BGE-v2-m3 reranker. Describe the technical concept in one sentence; keyword bags work poorly. Query language independent of result language. Use when — exploratory topic search, competitive landscaping, prior-art style retrieval. NOT for — known publication ID (use findip_get_patent_details), pure counts/trends (use findip_analyze_trends), image bytes (use findip_get_patent_drawing). Multi-country — pass all jurisdictions in ONE call (countries=["KR","US"]); per-country rank-percentile balancing kicks in. Splitting calls degrades quality. Applicant — MANDATORY `findip_find_applicant` first. If the user names a company (any language), call findip_find_applicant(q=name) → pass applicant_entity_ids=[…] (list, ONE call, include near-duplicates like 'SAMSUNG ELECTRONICS CO LTD' + '삼성전자주식회사' + '삼성전자 주식회사'). Empty candidates → not indexed (no fallback). Returns{total, results[]} where each result has patent_id, title, country, kind_code, legal_status (GRANTED|PUBLISHED — dynamic post-grant status NOT reflected), applicants[], applicants_harmonized[], inventors[], inventors_harmonized[], application_number, family_id, filing_date, publication_date, grant_date, priority_date, ipc_codes[], similarity_score (loose), rerank_score (sort-only, never threshold), representative_figure (filename or null), chunks[] (matched passages ordered by rerank_score). Broad / multi-concept queries drift off-topic. A query mixing two concepts ("wireless-charging + IR temperature sensor") often latches onto the more common one and drops the other; a short broad term ("injection molding") scatters across unrelated fields. If results look off-topic or the ipc_codes across results are scattered/unrelated, narrow with the ipc_codes parameter — pick codes from what the results actually show (or call findip_analyze_trends for its top_ipc rows), NOT from memory. For a genuinely broad query, ask the user which sub-field they mean in plain technical language (not IPC codes), then re-search. Rendering — representative figures are shown by DEFAULT. When the client renders an HTML artifact/canvas (Claude=artifact, ChatGPT=canvas), build a gallery/table with each hit's figure base64-embedded; otherwise an inline markdown table (columns: patent_id · title · country · applicants_harmonized · filing_date · kind_code · legal_status · rerank_score) and still list every hit. Always prepend a 1–3 sentence plain-text summary. Link each `patent_id`/title to its public detail page https://findip.ai/p/{publication_id} (server rule 3); in HTML add target="_blank" rel="noopener" so it opens in a separate tab. Never link to third-party sites. For inline content use findip_get_patent_section / findip_get_patent_details. Drawings — always include each hit's representative_figure. Build the figures into the HTML result base64-embedded via code (see findip_get_patent_drawing). Never paste base64 yourself; let code write it to the file. Relatedfindip_find_applicant (before company filter), findip_get_patent_section / findip_get_patent_details (drill in), findip_analyze_trends (aggregates), findip_get_coverage (date sanity).

findip_search_patents

ChatGPT
특허 시맨틱 검색 — 자연어 쿼리로 5개국(KR·US·CN·JP·EP) 관련 특허를 의미 기반 검색. Purpose — Multilingual embedding (Qwen3-0.6B) + BGE-v2-m3 reranker. Describe the technical concept in one sentence; keyword bags work poorly. Query language independent of result language. Use when — exploratory topic search, competitive landscaping, prior-art style retrieval. NOT for — known publication ID (use findip_get_patent_details), pure counts/trends (use findip_analyze_trends), image bytes (use findip_get_patent_drawing). Multi-country — pass all jurisdictions in ONE call (countries=["KR","US"]); per-country rank-percentile balancing kicks in. Splitting calls degrades quality. Applicant — MANDATORY `findip_find_applicant` first. If the user names a company (any language), call findip_find_applicant(q=name) → pass applicant_entity_ids=[…] (list, ONE call, include near-duplicates like 'SAMSUNG ELECTRONICS CO LTD' + '삼성전자주식회사' + '삼성전자 주식회사'). Empty candidates → not indexed (no fallback). Returns{total, results[]} where each result has patent_id, title, country, kind_code, legal_status (GRANTED|PUBLISHED — dynamic post-grant status NOT reflected), applicants[], applicants_harmonized[], inventors[], inventors_harmonized[], application_number, family_id, filing_date, publication_date, grant_date, priority_date, ipc_codes[], similarity_score (loose), rerank_score (sort-only, never threshold), representative_figure (filename or null), chunks[] (matched passages ordered by rerank_score). Broad / multi-concept queries drift off-topic. A query mixing two concepts ("wireless-charging + IR temperature sensor") often latches onto the more common one and drops the other; a short broad term ("injection molding") scatters across unrelated fields. If results look off-topic or the ipc_codes across results are scattered/unrelated, narrow with the ipc_codes parameter — pick codes from what the results actually show (or call findip_analyze_trends for its top_ipc rows), NOT from memory. For a genuinely broad query, ask the user which sub-field they mean in plain technical language (not IPC codes), then re-search. Rendering — representative figures are shown by DEFAULT. When the client renders an HTML artifact/canvas (Claude=artifact, ChatGPT=canvas), build a gallery/table with each hit's figure base64-embedded; otherwise an inline markdown table (columns: patent_id · title · country · applicants_harmonized · filing_date · kind_code · legal_status · rerank_score) and still list every hit. Always prepend a 1–3 sentence plain-text summary. Link each `patent_id`/title to its public detail page https://findip.ai/p/{publication_id} (server rule 3); in HTML add target="_blank" rel="noopener" so it opens in a separate tab. Never link to third-party sites. For inline content use findip_get_patent_section / findip_get_patent_details. Drawings — always include each hit's representative_figure. Build the figures into the HTML result base64-embedded via code (see findip_get_patent_drawing). Never paste base64 yourself; let code write it to the file. Relatedfindip_find_applicant (before company filter), findip_get_patent_section / findip_get_patent_details (drill in), findip_analyze_trends (aggregates), findip_get_coverage (date sanity).

findip_search_sequences

ChatGPT
Find patents containing a biological sequence similar to the query (homolog search). Purpose — Dense-vector k-NN over patent ST.26 sequence listings (DNA/RNA via Nucleotide Transformer, protein via ESM-2). Finds patents whose sequences are similar/related to the query — not exact BLAST alignment. When to use — The user supplies a nucleotide or amino-acid sequence and wants patents with similar sequences (e.g. "which patents have a sequence like this gene/peptide?"). Nucleic-acid vs protein is auto-detected. When NOT to use — Topic/keyword/problem search (use findip_search_patents). Exact variant-position alignment is out of scope (this is similarity retrieval). Returns{ seq_type, query_length, results[] }. Each result: publication_number, best_similarity (cosine 0–1), seq_count, matched_seqs[] (seq_id, seq_type, similarity, length, organism, sequence), biblio (title_text, applicant, ipc_codes, dates). Relatedfindip_get_patent_details (drill into a hit), findip_search_patents (topic search), findip_get_patent_section.

findip_search_sequences

ChatGPT
Find patents containing a biological sequence similar to the query (homolog search). Purpose — Dense-vector k-NN over patent ST.26 sequence listings (DNA/RNA via Nucleotide Transformer, protein via ESM-2). Finds patents whose sequences are similar/related to the query — not exact BLAST alignment. When to use — The user supplies a nucleotide or amino-acid sequence and wants patents with similar sequences (e.g. "which patents have a sequence like this gene/peptide?"). Nucleic-acid vs protein is auto-detected. When NOT to use — Topic/keyword/problem search (use findip_search_patents). Exact variant-position alignment is out of scope (this is similarity retrieval). Returns{ seq_type, query_length, results[] }. Each result: publication_number, best_similarity (cosine 0–1), seq_count, matched_seqs[] (seq_id, seq_type, similarity, length, organism, sequence), biblio (title_text, applicant, ipc_codes, dates). Relatedfindip_get_patent_details (drill into a hit), findip_search_patents (topic search), findip_get_patent_section.

findip_search_sequences

ChatGPT
Find patents containing a biological sequence similar to the query (homolog search). Purpose — Dense-vector k-NN over patent ST.26 sequence listings (DNA/RNA via Nucleotide Transformer, protein via ESM-2). Finds patents whose sequences are similar/related to the query — not exact BLAST alignment. When to use — The user supplies a nucleotide or amino-acid sequence and wants patents with similar sequences (e.g. "which patents have a sequence like this gene/peptide?"). Nucleic-acid vs protein is auto-detected. When NOT to use — Topic/keyword/problem search (use findip_search_patents). Exact variant-position alignment is out of scope (this is similarity retrieval). Returns{ seq_type, query_length, results[] }. Each result: publication_number, best_similarity (cosine 0–1), seq_count, matched_seqs[] (seq_id, seq_type, similarity, length, organism, sequence), biblio (title_text, applicant, ipc_codes, dates). Relatedfindip_get_patent_details (drill into a hit), findip_search_patents (topic search), findip_get_patent_section.

Capabilities

Retrievable

App Stats

30

Tools

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily