interpro-mcp-server
An MCP server that provides tools to search InterPro entries, map protein domains and functional sites onto UniProt proteins and PDB structures, find proteins by domain, and scan raw protein sequences. It supports STDIO and Streamable HTTP transports and accesses the InterPro API without requiring user credentials.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://interpro.caseyjhand.com/mcpWhat you can do with it
- Search InterPro entries by text or entry type
- Map UniProt protein domains to sequence coordinates
- Scan raw protein sequences for domain matches
- Retrieve full metadata for InterPro entries
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- interpro-mcp-server 0.2.0
- MCP protocol
- 2025-06-18
- Tools
- 9 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": true
},
"logging": {},
"prompts": {
"listChanged": true
},
"resources": {
"subscribe": true,
"listChanged": true
},
"extensions": {
"io.modelcontextprotocol/skills": {
"directoryRead": true
}
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
9 advertised
interpro_list_reference — InterPro reference vocabulary
List supported InterPro database slugs, entry types, accession and PDB identifier patterns, common taxon IDs, or current release information.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"topic"
],
"properties": {
"topic": {
"enum": [
"databases",
"entry_types",
"accession_patterns",
"taxa",
"release"
],
"type": "string",
"description": "Reference topic; release retrieves current upstream metadata."
}
},
"additionalProperties": false
}{
"type": "object",
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"topic",
"items",
"sourceUrls"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"upstream_shape_invalid",
"upstream_response_too_large",
"release_changed",
"upstream_rejected",
"upstream_unavailable",
"upstream_timeout",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `upstream_shape_invalid`: Upstream JSON or response structure is incompatible. `upstream_response_too_large`: An upstream response exceeds 4 MiB. `release_changed`: Release metadata and count responses advertise different versions. `upstream_rejected`: InterPro returns an unhandled redirect or client rejection. `upstream_unavailable`: InterPro has a network or server failure; HTTP 501 is not retryable. `upstream_timeout`: InterPro returns HTTP 408/504 or an attempt exceeds its deadline. `upstream_rate_limited`: InterPro returns HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"label"
],
"properties": {
"id": {
"type": "string",
"description": "Reference identifier."
},
"label": {
"type": "string",
"description": "Human-readable label."
},
"example": {
"type": "string",
"description": "Example accession spelling; assignment is not guaranteed."
},
"taxonId": {
"type": "string",
"description": "NCBI taxonomy identifier."
},
"description": {
"type": "string",
"description": "Meaning and coverage."
},
"sourceDatabase": {
"type": "string",
"description": "Entry API database slug."
},
"accessionPattern": {
"type": "string",
"description": "Accession routing pattern, case-insensitive except where the item description says otherwise."
}
},
"description": "One reference vocabulary item.",
"additionalProperties": false
},
"description": "Applicable reference vocabulary; empty for release."
},
"topic": {
"enum": [
"databases",
"entry_types",
"accession_patterns",
"taxa",
"release"
],
"type": "string",
"description": "Reference topic; release retrieves current upstream metadata."
},
"release": {
"type": "object",
"required": [
"version",
"date",
"databaseCounts"
],
"properties": {
"date": {
"type": "string",
"description": "Release date supplied by InterPro."
},
"version": {
"type": "string",
"description": "Greatest numeric release version."
},
"databaseCounts": {
"type": "object",
"description": "Complete entry aggregate response.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "Current live release metadata when requested.",
"additionalProperties": false
},
"sourceUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Official reference sources."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}interpro_search_entries — Search InterPro entries
Search InterPro entries or member signatures by text or entry type. GO filters require sourceDatabase interpro; integratedInto selects member signatures for an InterPro accession. Results are cursor-paged; use interpro_get_entry for full metadata.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive integer page size; values above 100 are clamped to 100 with a notice; defaults to 20."
},
"query": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Text to search; omit all filters to browse the database."
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque nextCursor from this tool with unchanged filters; limit may change."
},
"goTerm": {
"type": "string",
"pattern": "^GO:\\d{7}$",
"description": "GO annotation identifier such as GO:0003677; requires sourceDatabase interpro and cannot combine with goCategory."
},
"entryType": {
"enum": [
"domain",
"family",
"repeat",
"homologous_superfamily",
"active_site",
"binding_site",
"conserved_site",
"ptm",
"region",
"coiled_coil",
"disordered"
],
"type": "string",
"description": "Entry annotation type."
},
"goCategory": {
"enum": [
"P",
"F",
"C"
],
"type": "string",
"description": "GO category: P biological process, F molecular function, C cellular component; requires sourceDatabase interpro and cannot combine with goTerm."
},
"integratedInto": {
"type": "string",
"pattern": "^IPR\\d{6}$",
"description": "Integrating InterPro accession; requires a member sourceDatabase."
},
"sourceDatabase": {
"enum": [
"interpro",
"pfam",
"prosite",
"profile",
"smart",
"cdd",
"panther",
"cathgene3d",
"ssf",
"ncbifam",
"hamap",
"prints",
"pirsf",
"sfld",
"antifam"
],
"type": "string",
"default": "interpro",
"description": "Database to search; defaults to interpro."
}
},
"additionalProperties": false
}{
"type": "object",
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"query",
"entries",
"page",
"sourceUrl"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"cap": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Effective page size after clamping."
},
"page": {
"type": "object",
"required": [
"total",
"returned",
"limit",
"hasMore"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Effective page size after clamping to the tool maximum.",
"exclusiveMinimum": 0
},
"total": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Upstream total records."
},
"hasMore": {
"type": "boolean",
"description": "Whether upstream advertises continuation."
},
"returned": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records returned in this page."
},
"nextCursor": {
"type": "string",
"description": "Opaque continuation with unchanged target and filters."
}
},
"description": "Continuation and upstream total.",
"additionalProperties": false
},
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"incompatible_go_filters",
"go_filters_require_interpro",
"database_mismatch",
"invalid_cursor",
"entry_withdrawn",
"upstream_shape_invalid",
"upstream_response_too_large",
"upstream_rejected",
"upstream_unavailable",
"upstream_timeout",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `incompatible_go_filters`: Both goTerm and goCategory are supplied. `go_filters_require_interpro`: goTerm or goCategory is supplied for a member sourceDatabase. `database_mismatch`: Integration filtering is requested on the integrating database. `invalid_cursor`: Cursor decoding or scope fails, or upstream rejects continuation. `entry_withdrawn`: InterPro answers the search with HTTP 410, reporting a withdrawn record. `upstream_shape_invalid`: Upstream JSON, structure, or continuation is incompatible. `upstream_response_too_large`: An upstream response exceeds 4 MiB. `upstream_rejected`: InterPro returns an unhandled redirect or client rejection. `upstream_unavailable`: InterPro has a network or server failure; HTTP 501 is not retryable. `upstream_timeout`: InterPro returns HTTP 408/504 or an attempt exceeds its deadline. `upstream_rate_limited`: InterPro returns HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"query": {
"type": "object",
"required": [
"sourceDatabase"
],
"properties": {
"query": {
"type": "string",
"description": "Applied text search."
},
"goTerm": {
"type": "string",
"description": "Applied GO identifier."
},
"entryType": {
"enum": [
"domain",
"family",
"repeat",
"homologous_superfamily",
"active_site",
"binding_site",
"conserved_site",
"ptm",
"region",
"coiled_coil",
"disordered"
],
"type": "string",
"description": "Applied entry type."
},
"goCategory": {
"enum": [
"P",
"F",
"C"
],
"type": "string",
"description": "Applied GO category."
},
"integratedInto": {
"type": "string",
"description": "Applied integrating InterPro accession."
},
"sourceDatabase": {
"enum": [
"interpro",
"pfam",
"prosite",
"profile",
"smart",
"cdd",
"panther",
"cathgene3d",
"ssf",
"ncbifam",
"hamap",
"prints",
"pirsf",
"sfld",
"antifam"
],
"type": "string",
"description": "InterPro entry API database slug."
}
},
"description": "Applied canonical filters.",
"additionalProperties": false
},
"shown": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Records returned in this page."
},
"notice": {
"type": "string",
"description": "Interpretation or recovery guidance."
},
"entries": {
"type": "array",
"items": {
"type": "object",
"required": [
"accession",
"source_database"
],
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "Entry name when supplied."
},
"type": {
"type": [
"string",
"null"
],
"description": "Entry type when supplied."
},
"go_terms": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"identifier",
"name",
"category"
],
"properties": {
"name": {
"type": "string",
"description": "GO term name."
},
"category": {
"type": "object",
"required": [
"code",
"name"
],
"properties": {
"code": {
"type": "string",
"description": "GO category code."
},
"name": {
"type": "string",
"description": "GO category name."
}
},
"description": "GO category.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"identifier": {
"type": "string",
"description": "GO identifier."
}
},
"description": "GO annotation.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
{
"type": "null"
}
],
"description": "GO annotations when supplied."
},
"accession": {
"type": "string",
"description": "Entry accession."
},
"integrated": {
"type": [
"string",
"null"
],
"description": "Integrated InterPro accession."
},
"source_database": {
"type": "string",
"description": "Upstream source database."
},
"member_databases": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
{
"type": "null"
}
],
"description": "Member signatures grouped by database."
}
},
"description": "Complete entry summary.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Complete entry summaries from this page."
},
"sourceUrl": {
"type": "string",
"description": "Official API source URL."
},
"truncated": {
"type": "boolean",
"description": "More records remain."
},
"totalCount": {
"type": "number",
"description": "Upstream total matching records."
},
"effectiveQuery": {
"type": "string",
"description": "Applied filters as JSON."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}interpro_get_entry — InterPro entry metadata
Retrieve one InterPro or member-database entry with full metadata by default. Select optional sections while retaining core and unknown metadata, or supply overlapLimit to page whole overlap records in upstream order; offsets are not a snapshot across calls.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"accession"
],
"properties": {
"sections": {
"type": "array",
"items": {
"enum": [
"description",
"hierarchy",
"member_databases",
"go_terms",
"literature",
"cross_references",
"wikipedia",
"counters",
"overlaps_with"
],
"type": "string",
"description": "Optional metadata section to retain."
},
"description": "Retain these named sections and all core or unknown metadata; omitted means full detail, and an empty array retains core metadata only."
},
"accession": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]+$",
"maxLength": 100,
"minLength": 1,
"description": "InterPro or member-database entry accession, such as IPR011615 or PF00870; no URL syntax."
},
"overlapLimit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Positive safe integer number of whole overlap records; supplying it enables overlap paging.",
"exclusiveMinimum": 0
},
"overlapOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Nonnegative safe integer overlap offset; requires overlapLimit, defaults to zero."
},
"sourceDatabase": {
"enum": [
"interpro",
"pfam",
"prosite",
"profile",
"smart",
"cdd",
"panther",
"cathgene3d",
"ssf",
"ncbifam",
"hamap",
"prints",
"pirsf",
"sfld",
"antifam"
],
"type": "string",
"description": "Database slug; inferred from standard accession prefixes when omitted."
},
"includeThumbnail": {
"type": "boolean",
"default": false,
"description": "Include each Wikipedia thumbnail image, base64 data often hundreds of KB; defaults to false."
}
},
"additionalProperties": false
}{
"type": "object",
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"accession",
"sourceDatabase",
"entry",
"url",
"sourceUrl"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"url": {
"type": "string",
"description": "Canonical InterPro website URL."
},
"entry": {
"type": "object",
"required": [
"accession",
"source_database"
],
"properties": {
"name": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "Full name."
},
"short": {
"type": [
"string",
"null"
],
"description": "Short name."
}
},
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
{
"type": "null"
}
],
"description": "Detail name object."
},
"accession": {
"type": "string",
"description": "Entry accession."
},
"descriptionText": {
"type": "string",
"description": "Readable description text decoded from source HTML fragments; absent without textual content."
},
"source_database": {
"type": "string",
"description": "Upstream database."
}
},
"description": "Upstream metadata after explicit section selection and overlap paging, with readable descriptionText when description is retained; raw description shapes and sparse annotations survive. Wikipedia thumbnails are omitted unless includeThumbnail is true.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"overlap_limit_required",
"overlaps_not_selected",
"database_mismatch",
"accession_source_unknown",
"entry_not_found",
"entry_withdrawn",
"upstream_shape_invalid",
"upstream_response_too_large",
"upstream_rejected",
"upstream_unavailable",
"upstream_timeout",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `overlap_limit_required`: overlapOffset is supplied without overlapLimit. `overlaps_not_selected`: Overlap paging is requested but sections excludes overlaps_with. `database_mismatch`: Explicit database conflicts with accession routing. `accession_source_unknown`: Accession has no inferred or explicit database. `entry_not_found`: Entry detail returns 204 or 404, or the accession is a set accession. `entry_withdrawn`: Entry or set returns 410. `upstream_shape_invalid`: Upstream JSON, structure, or continuation is incompatible. `upstream_response_too_large`: An upstream response exceeds 4 MiB. `upstream_rejected`: InterPro returns an unhandled redirect or client rejection. `upstream_unavailable`: InterPro has a network or server failure; HTTP 501 is not retryable. `upstream_timeout`: InterPro returns HTTP 408/504 or an attempt exceeds its deadline. `upstream_rate_limited`: InterPro returns HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"notice": {
"type": "string",
"description": "Section selection, overlap page continuation or availability, and omitted Wikipedia thumbnail guidance."
},
"sections": {
"type": "array",
"items": {
"enum": [
"description",
"hierarchy",
"member_databases",
"go_terms",
"literature",
"cross_references",
"wikipedia",
"counters",
"overlaps_with"
],
"type": "string",
"description": "Retained optional section."
},
"description": "Canonical selected sections, when explicitly selected."
},
"accession": {
"type": "string",
"description": "Canonical requested accession."
},
"sourceUrl": {
"type": "string",
"description": "Official API source URL."
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Total upstream overlap records when explicit paging has an available array."
},
"overlapsPage": {
"oneOf": [
{
"type": "object",
"required": [
"available",
"total",
"offset",
"returned",
"hasMore"
],
"properties": {
"total": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Complete upstream overlap count."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Requested record offset."
},
"hasMore": {
"type": "boolean",
"description": "More overlap records remain."
},
"returned": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Complete records returned."
},
"available": {
"type": "boolean",
"const": true,
"description": "Overlap array was supplied."
},
"nextOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Next offset when more records remain."
}
},
"description": "Page of complete upstream overlap records.",
"additionalProperties": false
},
{
"type": "object",
"required": [
"available",
"offset"
],
"properties": {
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Requested record offset."
},
"available": {
"type": "boolean",
"const": false,
"description": "Overlap array was not supplied."
}
},
"description": "Overlap paging unavailable for a missing or null source section.",
"additionalProperties": false
}
],
"description": "Explicit overlap paging state; unavailable arrays have no fabricated total."
},
"sourceDatabase": {
"enum": [
"interpro",
"pfam",
"prosite",
"profile",
"smart",
"cdd",
"panther",
"cathgene3d",
"ssf",
"ncbifam",
"hamap",
"prints",
"pirsf",
"sfld",
"antifam"
],
"type": "string",
"description": "InterPro entry API database slug."
},
"omittedSections": {
"type": "array",
"items": {
"enum": [
"description",
"hierarchy",
"member_databases",
"go_terms",
"literature",
"cross_references",
"wikipedia",
"counters",
"overlaps_with"
],
"type": "string",
"description": "Omitted source section."
},
"description": "Named sections actually removed from upstream metadata."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}interpro_get_clan — InterPro clan metadata and members
Retrieve a Pfam, CDD, or PIRSF clan/set and a cursor page of member entries; optionally include its relationship graph, returned in slices that fit the response budget and paged with relationshipOffset.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"accession"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive integer member page size; values above 100 are clamped to 100 with a notice; defaults to 20."
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque nextCursor with unchanged accession, sourceDatabase, and includeRelationships; limit, relationshipOffset, and includeThumbnail may change."
},
"accession": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]+$",
"maxLength": 100,
"minLength": 1,
"description": "Set accession, such as CL0016 (Pfam), cl21453 (CDD), or PIRSF000047; no URL syntax."
},
"sourceDatabase": {
"enum": [
"pfam",
"cdd",
"pirsf"
],
"type": "string",
"description": "Inferred from uppercase CL (Pfam), lowercase cl (CDD), or PIRSF; supply explicitly for mixed-case CL prefixes."
},
"includeThumbnail": {
"type": "boolean",
"default": false,
"description": "Include each Wikipedia thumbnail image, base64 data often tens of KB; defaults to false."
},
"relationshipOffset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Position of the first relationship item to return, counting nodes, then links; defaults to 0. A value above 0 requires includeRelationships: true; pass relationshipsPage.nextOffset to continue."
},
"includeRelationships": {
"type": "boolean",
"default": false,
"description": "Include the relationship graph, one slice per call that fits the response budget; defaults to false."
}
},
"additionalProperties": false
}{
"type": "object",
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"accession",
"sourceDatabase",
"clan",
"relationshipsIncluded",
"members",
"page",
"url",
"sourceUrl"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"cap": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Effective member page size after clamping."
},
"url": {
"type": "string",
"description": "Canonical InterPro clan website URL."
},
"clan": {
"type": "object",
"required": [
"accession",
"source_database"
],
"properties": {
"accession": {
"type": "string",
"description": "Upstream set accession."
},
"source_database": {
"type": "string",
"description": "Upstream set database."
}
},
"description": "Complete metadata, with relationships and Wikipedia thumbnails omitted unless requested; requested relationships hold the slice relationshipsPage locates.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"page": {
"type": "object",
"required": [
"total",
"returned",
"limit",
"hasMore"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Effective page size after clamping to the tool maximum.",
"exclusiveMinimum": 0
},
"total": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Upstream total records."
},
"hasMore": {
"type": "boolean",
"description": "Whether upstream advertises continuation."
},
"returned": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records returned in this page."
},
"nextCursor": {
"type": "string",
"description": "Opaque continuation with unchanged target and filters."
}
},
"description": "Member continuation and total.",
"additionalProperties": false
},
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"database_mismatch",
"accession_source_unknown",
"relationships_not_requested",
"clan_not_found",
"entry_withdrawn",
"invalid_cursor",
"upstream_shape_invalid",
"upstream_response_too_large",
"upstream_rejected",
"upstream_unavailable",
"upstream_timeout",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `database_mismatch`: Explicit database conflicts with accession routing. `accession_source_unknown`: Accession has no inferred or explicit database. `relationships_not_requested`: relationshipOffset above 0 is supplied without includeRelationships: true; 0 is accepted as a no-op. `clan_not_found`: Set metadata returns 204 or 404. `entry_withdrawn`: Entry or set returns 410. `invalid_cursor`: Cursor decoding or scope fails, or upstream rejects continuation. `upstream_shape_invalid`: Upstream JSON, structure, or continuation is incompatible. `upstream_response_too_large`: An upstream response exceeds 4 MiB. `upstream_rejected`: InterPro returns an unhandled redirect or client rejection. `upstream_unavailable`: InterPro has a network or server failure; HTTP 501 is not retryable. `upstream_timeout`: InterPro returns HTTP 408/504 or an attempt exceeds its deadline. `upstream_rate_limited`: InterPro returns HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"shown": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Members returned in this page."
},
"notice": {
"type": "string",
"description": "Next relationship slice call, omitted relationships or thumbnails, or empty-page guidance."
},
"members": {
"type": "array",
"items": {
"type": "object",
"required": [
"metadata",
"sets"
],
"properties": {
"sets": {
"type": "array",
"items": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
},
"description": "Complete upstream set associations."
},
"metadata": {
"type": "object",
"required": [
"accession",
"source_database"
],
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "Entry name when supplied."
},
"type": {
"type": [
"string",
"null"
],
"description": "Entry type when supplied."
},
"go_terms": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"identifier",
"name",
"category"
],
"properties": {
"name": {
"type": "string",
"description": "GO term name."
},
"category": {
"type": "object",
"required": [
"code",
"name"
],
"properties": {
"code": {
"type": "string",
"description": "GO category code."
},
"name": {
"type": "string",
"description": "GO category name."
}
},
"description": "GO category.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"identifier": {
"type": "string",
"description": "GO identifier."
}
},
"description": "GO annotation.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
{
"type": "null"
}
],
"description": "GO annotations when supplied."
},
"accession": {
"type": "string",
"description": "Entry accession."
},
"integrated": {
"type": [
"string",
"null"
],
"description": "Integrated InterPro accession."
},
"source_database": {
"type": "string",
"description": "Upstream source database."
},
"member_databases": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
{
"type": "null"
}
],
"description": "Member signatures grouped by database."
}
},
"description": "Complete member entry metadata.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "Complete upstream member record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Complete upstream member records."
},
"accession": {
"type": "string",
"description": "Canonical requested clan accession."
},
"sourceUrl": {
"type": "string",
"description": "Official clan metadata API source URL."
},
"truncated": {
"type": "boolean",
"description": "More members remain."
},
"totalCount": {
"type": "number",
"description": "Total matching members."
},
"effectiveQuery": {
"type": "string",
"description": "Applied canonical target, relationship, and thumbnail selection."
},
"sourceDatabase": {
"enum": [
"pfam",
"cdd",
"pirsf"
],
"type": "string",
"description": "Set database."
},
"relationshipsPage": {
"type": "object",
"required": [
"totalNodes",
"totalLinks",
"offset",
"returnedNodes",
"returnedLinks",
"hasMore"
],
"properties": {
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Requested relationshipOffset: position of the first returned item among every node sorted by accession, followed by every link sorted by source, target, and method."
},
"hasMore": {
"type": "boolean",
"description": "Whether nodes or links remain after this slice."
},
"nextOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "relationshipOffset of the next slice; present only when hasMore is true."
},
"totalLinks": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Links in the complete graph."
},
"totalNodes": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Nodes in the complete graph."
},
"returnedLinks": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Links in this slice."
},
"returnedNodes": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Nodes in this slice."
}
},
"description": "Position and totals of the relationship slice; present only when includeRelationships is true.",
"additionalProperties": false
},
"relationshipsIncluded": {
"type": "boolean",
"description": "Whether relationship projection was requested."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}interpro_get_protein_domains — Map protein domains
Retrieve InterPro and member-signature matches on a canonical UniProt protein, preserving every location and discontinuous fragment. Optionally select records covering a residue, include extra predicted features, and include functional residue rules with provenance. Budgeted segments hold whole records in order: matches, requested extras, then requested residue rules sorted by key. The first segment carries protein metadata; continue coverage.nextCursor until hasMore is false.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"accession"
],
"properties": {
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque coverage.nextCursor with unchanged accession, residuePosition, includeExtraFeatures, and includeResidueAnnotations."
},
"accession": {
"type": "string",
"pattern": "^(?:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9](?:[A-Z][A-Z0-9]{2}[0-9]){1,2})$",
"description": "Canonical six- or ten-character UniProt accession, without an isoform suffix."
},
"residuePosition": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Residue position, 1-based and inclusive; must not exceed protein length.",
"exclusiveMinimum": 0
},
"includeExtraFeatures": {
"type": "boolean",
"default": false,
"description": "Include complete extra predicted features, returned after the last match; defaults to false."
},
"includeResidueAnnotations": {
"type": "boolean",
"default": false,
"description": "Include complete functional residue rules after matches and requested extras; defaults to false."
}
},
"additionalProperties": false
}{
"type": "object",
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"accession",
"matches",
"selection",
"coverage",
"url",
"sourceUrl"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"cap": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Most match records one call reads; a segment can stop sooner at the response byte budget."
},
"url": {
"type": "string",
"description": "Canonical protein website URL."
},
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"retry_deadline_exceeded",
"invalid_cursor",
"entry_withdrawn",
"upstream_shape_invalid",
"upstream_response_too_large",
"upstream_rejected",
"upstream_unavailable",
"upstream_timeout",
"upstream_rate_limited",
"protein_not_found",
"residue_out_of_range"
],
"description": "Machine-readable failure mode. Declared by this tool: `retry_deadline_exceeded`: The shared fifty-second budget expires across metadata, match pages, extra features, and residue rules. `invalid_cursor`: Cursor decoding or scope fails, the records it resumes inside changed or disagree with it, or upstream rejects continuation. `entry_withdrawn`: InterPro reports a withdrawn record with HTTP 410. `upstream_shape_invalid`: Upstream JSON, structure, or continuation is incompatible. `upstream_response_too_large`: An upstream response exceeds 4 MiB. `upstream_rejected`: InterPro returns an unhandled redirect or client rejection. `upstream_unavailable`: InterPro has a network or server failure; HTTP 501 is not retryable. `upstream_timeout`: InterPro returns HTTP 408/504 or an attempt exceeds its deadline. `upstream_rate_limited`: InterPro returns HTTP 429. `protein_not_found`: Canonical protein detail returns HTTP 204 or 404. `residue_out_of_range`: Requested position exceeds the fetched protein length. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"shown": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Selected match records in this segment."
},
"notice": {
"type": "string",
"description": "Interpretation, continuation, or recovery guidance."
},
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"metadata",
"proteins"
],
"properties": {
"metadata": {
"type": "object",
"required": [
"accession",
"source_database"
],
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "Entry name when supplied."
},
"type": {
"type": [
"string",
"null"
],
"description": "Entry type when supplied."
},
"go_terms": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"identifier",
"name",
"category"
],
"properties": {
"name": {
"type": "string",
"description": "GO term name."
},
"category": {
"type": "object",
"required": [
"code",
"name"
],
"properties": {
"code": {
"type": "string",
"description": "GO category code."
},
"name": {
"type": "string",
"description": "GO category name."
}
},
"description": "GO category.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"identifier": {
"type": "string",
"description": "GO identifier."
}
},
"description": "GO annotation.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
{
"type": "null"
}
],
"description": "GO annotations when supplied."
},
"accession": {
"type": "string",
"description": "Entry accession."
},
"integrated": {
"type": [
"string",
"null"
],
"description": "Integrated InterPro accession."
},
"source_database": {
"type": "string",
"description": "Upstream source database."
},
"member_databases": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
{
"type": "null"
}
],
"description": "Member signatures grouped by database."
}
},
"description": "Entry metadata.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"proteins": {
"type": "array",
"items": {
"type": "object",
"required": [
"accession",
"entry_protein_locations"
],
"properties": {
"accession": {
"type": "string",
"description": "Matched protein accession."
},
"entry_protein_locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"fragments"
],
"properties": {
"model": {
"type": [
"string",
"null"
],
"description": "Source model."
},
"score": {
"type": [
"number",
"null"
],
"description": "Upstream match score."
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status."
}
},
"description": "Complete continuous or discontinuous sequence fragment.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty sequence fragments."
},
"representative": {
"type": [
"boolean",
"null"
],
"description": "Representative match flag."
}
},
"description": "Complete upstream match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Complete match locations."
}
},
"description": "Complete protein match object.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Protein match objects."
}
},
"description": "Complete entry match record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Whole selected match records in this segment, sorted by earliest coordinate then accession; a match is never split across segments."
},
"protein": {
"type": "object",
"required": [
"accession",
"length",
"source_database"
],
"properties": {
"gene": {
"type": [
"string",
"null"
],
"description": "Gene name."
},
"name": {
"type": [
"string",
"null"
],
"description": "Protein name."
},
"length": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Sequence length in residues.",
"exclusiveMinimum": 0
},
"proteome": {
"type": [
"string",
"null"
],
"description": "UniProt proteome accession, such as UP000000625; pass it as interpro_find_proteins_by_domain proteomeId with taxonId set to source_organism.taxId or an ancestor. Null when the protein belongs to no proteome."
},
"accession": {
"type": "string",
"description": "Protein accession."
},
"source_database": {
"type": "string",
"description": "Protein source database."
},
"source_organism": {
"type": "object",
"required": [
"taxId",
"scientificName"
],
"properties": {
"taxId": {
"anyOf": [
{
"type": "string",
"description": "Taxonomy identifier as supplied text."
},
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Taxonomy identifier as supplied integer."
}
],
"description": "Taxonomy identifier."
},
"fullName": {
"type": [
"string",
"null"
],
"description": "Full organism name."
},
"scientificName": {
"type": "string",
"description": "Scientific organism name."
}
},
"description": "Source organism.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "Complete upstream protein metadata on the first segment, the call without cursor; continuation segments omit it.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"coverage": {
"type": "object",
"required": [
"totalMatches",
"scannedMatches",
"returnedMatches",
"complete",
"hasMore"
],
"properties": {
"hasMore": {
"type": "boolean",
"description": "Whether another segment remains, holding matches, requested extras, or requested residue rules."
},
"complete": {
"type": "boolean",
"description": "True only when this call starts without a cursor and returns every match, requested extra feature, and requested residue rule."
},
"nextCursor": {
"type": "string",
"description": "Opaque cursor resuming at the next whole match, extra feature, or residue rule for the same protein and selection."
},
"totalMatches": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Upstream unfiltered total match count; extra-feature-only and residue-rule-only segments repeat the count reported by the match list."
},
"totalFeatures": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Selected extra features for this protein and residue; present with extraFeatures."
},
"scannedMatches": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Match records this segment covered, before residue filtering; totalMatches is upstream's reported count, and a complete walk can cover a different number."
},
"returnedMatches": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Selected match records in this segment."
},
"returnedFeatures": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Extra features in this segment; present with extraFeatures."
},
"totalResidueAnnotations": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Selected residue rules; present only when the residue stage is reached."
},
"returnedResidueAnnotations": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Whole residue rules returned in this segment."
}
},
"description": "Where this segment sits in the protein map: matches, requested extra features, then requested residue rules.",
"additionalProperties": false
},
"accession": {
"type": "string",
"description": "Canonical UniProt accession."
},
"selection": {
"type": "object",
"required": [
"includeExtraFeatures"
],
"properties": {
"residuePosition": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Selected 1-based inclusive residue position.",
"exclusiveMinimum": 0
},
"includeExtraFeatures": {
"type": "boolean",
"description": "Whether extra predicted features were requested."
},
"includeResidueAnnotations": {
"type": "boolean",
"const": true,
"description": "Present only when residue rules were requested."
}
},
"description": "Applied residue, extra-feature, and residue-rule selection.",
"additionalProperties": false
},
"sourceUrl": {
"type": "string",
"description": "Official protein API source URL."
},
"truncated": {
"type": "boolean",
"description": "More segments remain."
},
"totalCount": {
"type": "number",
"description": "Upstream total matching records."
},
"extraFeatures": {
"type": "object",
"description": "Whole selected extra features in this segment, in feature-key order; {} when none are selected. Omitted when not requested or when this segment ends before the features that follow the last match.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"required": [
"accession",
"source_database",
"locations"
],
"properties": {
"accession": {
"type": "string",
"description": "Feature accession."
},
"locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"fragments"
],
"properties": {
"model": {
"type": [
"string",
"null"
],
"description": "Source model."
},
"score": {
"type": [
"number",
"null"
],
"description": "Upstream match score."
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status."
}
},
"description": "Complete continuous or discontinuous sequence fragment.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty sequence fragments."
},
"representative": {
"type": [
"boolean",
"null"
],
"description": "Representative match flag."
}
},
"description": "Complete upstream match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Feature locations."
},
"source_database": {
"type": "string",
"description": "Feature source."
}
},
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"effectiveQuery": {
"type": "string",
"description": "Applied selection as JSON."
},
"residueAnnotations": {
"type": "object",
"description": "Whole selected residue rules sorted by key; {} means the stage was reached with no selected rules. Omitted when unrequested or unreached.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"required": [
"accession",
"source_database",
"locations"
],
"properties": {
"accession": {
"type": "string",
"description": "Residue rule accession."
},
"locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"fragments"
],
"properties": {
"model": {
"type": [
"string",
"null"
],
"description": "Source model."
},
"score": {
"type": [
"number",
"null"
],
"description": "Upstream match score."
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status."
}
},
"description": "Complete continuous or discontinuous sequence fragment.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty sequence fragments."
},
"representative": {
"type": [
"boolean",
"null"
],
"description": "Representative match flag."
}
},
"description": "Complete upstream match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Complete rule locations and residue fragments."
},
"source_database": {
"type": "string",
"description": "Rule source database."
}
},
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}interpro_find_proteins_by_domain — Find proteins by domain
Find UniProt proteins carrying an InterPro or member signature. Defaults to reviewed human proteins; reviewedOnly=false includes all review statuses in the chosen taxon. Optional isFragment filters fragment annotations; false does not prove sequence completeness. architectureId intersects the provider Pfam grouping with these selections, without implying functional equivalence; metadata-only hits disclose unavailable entry and taxon details without per-protein requests. proteomeId intersects one UniProt proteome, such as protein.proteome from interpro_get_protein_domains, with every selection including taxonId.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"accession"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive integer page size; values above 50 are clamped to 50 with a notice; defaults to 20."
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque nextCursor with unchanged target, taxonId, reviewedOnly, isFragment, architectureId, and proteomeId selection; limit may change."
},
"taxonId": {
"type": "string",
"default": "9606",
"pattern": "^[1-9][0-9]*$",
"maxLength": 10,
"description": "Positive NCBI taxonomy identifier of at most 10 digits; defaults to human 9606."
},
"accession": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]+$",
"maxLength": 100,
"minLength": 1,
"description": "InterPro or member-database entry accession, such as IPR011615 or PF00870; no URL syntax."
},
"isFragment": {
"type": "boolean",
"description": "Select fragment annotations: true for fragments, false for proteins not annotated as fragments; omit to include both. False does not establish sequence completeness."
},
"proteomeId": {
"type": "string",
"pattern": "^[Uu][Pp][0-9]{9}$",
"maxLength": 11,
"description": "Optional UniProt proteome accession, UP followed by 9 digits, such as protein.proteome from interpro_get_protein_domains. taxonId still applies, including its 9606 default: set taxonId to the mapped protein.source_organism.taxId or an ancestor, or no proteins match."
},
"reviewedOnly": {
"type": "boolean",
"default": true,
"description": "Defaults to reviewed proteins; false includes reviewed and unreviewed proteins."
},
"architectureId": {
"type": "string",
"pattern": "^[a-fA-F0-9]{40}$",
"description": "Optional 40-character hexadecimal Pfam architecture grouping ID from protein.ida_accession; grouping does not establish functional equivalence."
},
"sourceDatabase": {
"enum": [
"interpro",
"pfam",
"prosite",
"profile",
"smart",
"cdd",
"panther",
"cathgene3d",
"ssf",
"ncbifam",
"hamap",
"prints",
"pirsf",
"sfld",
"antifam"
],
"type": "string",
"description": "Entry database slug, inferred from standard accession prefixes when omitted."
}
},
"additionalProperties": false
}{
"type": "object",
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"query",
"proteins",
"page",
"sourceUrl"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"cap": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Effective page size after clamping."
},
"page": {
"type": "object",
"required": [
"total",
"returned",
"limit",
"hasMore"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Effective page size after clamping to the tool maximum.",
"exclusiveMinimum": 0
},
"total": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Upstream total records."
},
"hasMore": {
"type": "boolean",
"description": "Whether upstream advertises continuation."
},
"returned": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records returned in this page."
},
"nextCursor": {
"type": "string",
"description": "Opaque continuation with unchanged target and filters."
}
},
"description": "Page coverage and continuation.",
"additionalProperties": false
},
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"invalid_cursor",
"entry_not_found",
"entry_withdrawn",
"upstream_shape_invalid",
"upstream_response_too_large",
"upstream_rejected",
"upstream_unavailable",
"upstream_timeout",
"upstream_rate_limited",
"database_mismatch",
"accession_source_unknown"
],
"description": "Machine-readable failure mode. Declared by this tool: `invalid_cursor`: Cursor decoding or scope fails, or upstream rejects continuation. `entry_not_found`: The accession is a set accession, or InterPro rejects it for its database with HTTP 404. `entry_withdrawn`: InterPro reports a withdrawn record with HTTP 410. `upstream_shape_invalid`: Upstream JSON, structure, or continuation is incompatible. `upstream_response_too_large`: An upstream response exceeds 4 MiB. `upstream_rejected`: InterPro returns an unhandled redirect or client rejection. `upstream_unavailable`: InterPro has a network or server failure; HTTP 501 is not retryable. `upstream_timeout`: InterPro returns HTTP 408/504 or an attempt exceeds its deadline. `upstream_rate_limited`: InterPro returns HTTP 429. `database_mismatch`: Explicit database conflicts with accession routing. `accession_source_unknown`: No safe inferred entry source and no explicit source. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"query": {
"type": "object",
"required": [
"accession",
"sourceDatabase",
"taxonId",
"reviewedOnly"
],
"properties": {
"taxonId": {
"type": "string",
"description": "Applied NCBI taxonomy identifier."
},
"accession": {
"type": "string",
"description": "Canonical entry accession."
},
"isFragment": {
"type": "boolean",
"description": "Applied fragment annotation filter; omitted includes both groups."
},
"proteomeId": {
"type": "string",
"description": "Applied uppercase UniProt proteome accession."
},
"reviewedOnly": {
"type": "boolean",
"description": "True restricts to reviewed proteins; false includes all review statuses."
},
"architectureId": {
"type": "string",
"description": "Applied lowercase Pfam architecture grouping identifier."
},
"sourceDatabase": {
"enum": [
"interpro",
"pfam",
"prosite",
"profile",
"smart",
"cdd",
"panther",
"cathgene3d",
"ssf",
"ncbifam",
"hamap",
"prints",
"pirsf",
"sfld",
"antifam"
],
"type": "string",
"description": "InterPro entry API database slug."
}
},
"description": "Applied canonical target and selection, including defaults.",
"additionalProperties": false
},
"shown": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Selected records returned."
},
"notice": {
"type": "string",
"description": "Interpretation or recovery guidance."
},
"proteins": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"metadata",
"entries",
"taxa"
],
"properties": {
"taxa": {
"type": "array",
"items": {
"type": "object",
"required": [
"accession"
],
"properties": {
"accession": {
"type": "string",
"description": "Taxon accession."
}
},
"description": "Complete taxon record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Complete taxon records including lineage when supplied."
},
"entries": {
"type": "array",
"items": {
"type": "object",
"required": [
"accession",
"entry_protein_locations"
],
"properties": {
"accession": {
"type": "string",
"description": "Matched entry accession."
},
"entry_protein_locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"fragments"
],
"properties": {
"model": {
"type": [
"string",
"null"
],
"description": "Source model."
},
"score": {
"type": [
"number",
"null"
],
"description": "Upstream match score."
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status."
}
},
"description": "Complete continuous or discontinuous sequence fragment.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty sequence fragments."
},
"representative": {
"type": [
"boolean",
"null"
],
"description": "Representative match flag."
}
},
"description": "Complete upstream match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Complete nested match locations."
}
},
"description": "Complete entry match record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Matched entry records and all upstream fields."
},
"metadata": {
"type": "object",
"required": [
"accession",
"length",
"source_database"
],
"properties": {
"gene": {
"type": [
"string",
"null"
],
"description": "Gene name."
},
"name": {
"type": [
"string",
"null"
],
"description": "Protein name."
},
"length": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Sequence length in residues.",
"exclusiveMinimum": 0
},
"proteome": {
"type": [
"string",
"null"
],
"description": "UniProt proteome accession, such as UP000000625; pass it as interpro_find_proteins_by_domain proteomeId with taxonId set to source_organism.taxId or an ancestor. Null when the protein belongs to no proteome."
},
"accession": {
"type": "string",
"description": "Protein accession."
},
"source_database": {
"type": "string",
"description": "Protein source database."
},
"source_organism": {
"type": "object",
"required": [
"taxId",
"scientificName"
],
"properties": {
"taxId": {
"anyOf": [
{
"type": "string",
"description": "Taxonomy identifier as supplied text."
},
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Taxonomy identifier as supplied integer."
}
],
"description": "Taxonomy identifier."
},
"fullName": {
"type": [
"string",
"null"
],
"description": "Full organism name."
},
"scientificName": {
"type": "string",
"description": "Scientific organism name."
}
},
"description": "Source organism.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "Complete sparse protein summary.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"extra_fields": {
"$ref": "#/$defs/__schema0",
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
],
"description": "Native extra fields preserved verbatim. is_fragment is boolean when supplied, null or absent means unknown, and false means not annotated as a fragment rather than proof of a complete canonical sequence."
}
},
"description": "Complete protein discovery record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
{
"type": "object",
"required": [
"metadata",
"entries",
"taxa",
"proteomes"
],
"properties": {
"taxa": {
"type": "array",
"items": {
"type": "object",
"required": [
"accession"
],
"properties": {
"accession": {
"type": "string",
"description": "Taxon accession."
}
},
"description": "Complete taxon record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Complete taxon records including lineage when supplied."
},
"entries": {
"type": "array",
"items": {
"type": "object",
"required": [
"accession",
"entry_protein_locations"
],
"properties": {
"accession": {
"type": "string",
"description": "Matched entry accession."
},
"entry_protein_locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"fragments"
],
"properties": {
"model": {
"type": [
"string",
"null"
],
"description": "Source model."
},
"score": {
"type": [
"number",
"null"
],
"description": "Upstream match score."
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status."
}
},
"description": "Complete continuous or discontinuous sequence fragment.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty sequence fragments."
},
"representative": {
"type": [
"boolean",
"null"
],
"description": "Representative match flag."
}
},
"description": "Complete upstream match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Complete nested match locations."
}
},
"description": "Complete entry match record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Matched entry records and all upstream fields."
},
"metadata": {
"type": "object",
"required": [
"accession",
"length",
"source_database"
],
"properties": {
"gene": {
"type": [
"string",
"null"
],
"description": "Gene name."
},
"name": {
"type": [
"string",
"null"
],
"description": "Protein name."
},
"length": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Sequence length in residues.",
"exclusiveMinimum": 0
},
"proteome": {
"type": [
"string",
"null"
],
"description": "UniProt proteome accession, such as UP000000625; pass it as interpro_find_proteins_by_domain proteomeId with taxonId set to source_organism.taxId or an ancestor. Null when the protein belongs to no proteome."
},
"accession": {
"type": "string",
"description": "Protein accession."
},
"source_database": {
"type": "string",
"description": "Protein source database."
},
"source_organism": {
"type": "object",
"required": [
"taxId",
"scientificName"
],
"properties": {
"taxId": {
"anyOf": [
{
"type": "string",
"description": "Taxonomy identifier as supplied text."
},
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Taxonomy identifier as supplied integer."
}
],
"description": "Taxonomy identifier."
},
"fullName": {
"type": [
"string",
"null"
],
"description": "Full organism name."
},
"scientificName": {
"type": "string",
"description": "Scientific organism name."
}
},
"description": "Source organism.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "Complete sparse protein summary.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"proteomes": {
"type": "array",
"items": {
"type": "object",
"required": [
"accession"
],
"properties": {
"accession": {
"type": "string",
"description": "Proteome accession as upstream writes it, lowercase."
}
},
"description": "Complete proteome record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Complete records of the selected proteome, preserved verbatim."
},
"extra_fields": {
"$ref": "#/$defs/__schema0",
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
],
"description": "Native extra fields preserved verbatim. is_fragment is boolean when supplied, null or absent means unknown, and false means not annotated as a fragment rather than proof of a complete canonical sequence."
}
},
"description": "Complete proteome-filtered protein discovery record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
{
"type": "object",
"required": [
"metadata",
"detailAvailability"
],
"properties": {
"taxa": {
"type": "array",
"items": {
"type": "object",
"required": [
"accession"
],
"properties": {
"accession": {
"type": "string",
"description": "Taxon accession."
}
},
"description": "Complete taxon record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Complete taxon records including lineage when supplied."
},
"entries": {
"type": "array",
"items": {
"type": "object",
"required": [
"accession",
"entry_protein_locations"
],
"properties": {
"accession": {
"type": "string",
"description": "Matched entry accession."
},
"entry_protein_locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"fragments"
],
"properties": {
"model": {
"type": [
"string",
"null"
],
"description": "Source model."
},
"score": {
"type": [
"number",
"null"
],
"description": "Upstream match score."
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status."
}
},
"description": "Complete continuous or discontinuous sequence fragment.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty sequence fragments."
},
"representative": {
"type": [
"boolean",
"null"
],
"description": "Representative match flag."
}
},
"description": "Complete upstream match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Complete nested match locations."
}
},
"description": "Complete entry match record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Matched entry records and all upstream fields."
},
"metadata": {
"type": "object",
"required": [
"accession",
"length",
"source_database"
],
"properties": {
"gene": {
"type": [
"string",
"null"
],
"description": "Gene name."
},
"name": {
"type": [
"string",
"null"
],
"description": "Protein name."
},
"length": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Sequence length in residues.",
"exclusiveMinimum": 0
},
"proteome": {
"type": [
"string",
"null"
],
"description": "UniProt proteome accession, such as UP000000625; pass it as interpro_find_proteins_by_domain proteomeId with taxonId set to source_organism.taxId or an ancestor. Null when the protein belongs to no proteome."
},
"accession": {
"type": "string",
"description": "Protein accession."
},
"source_database": {
"type": "string",
"description": "Protein source database."
},
"source_organism": {
"type": "object",
"required": [
"taxId",
"scientificName"
],
"properties": {
"taxId": {
"anyOf": [
{
"type": "string",
"description": "Taxonomy identifier as supplied text."
},
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Taxonomy identifier as supplied integer."
}
],
"description": "Taxonomy identifier."
},
"fullName": {
"type": [
"string",
"null"
],
"description": "Full organism name."
},
"scientificName": {
"type": "string",
"description": "Scientific organism name."
}
},
"description": "Source organism.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "Complete sparse protein summary.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"proteomes": {
"type": "array",
"items": {
"type": "object",
"required": [
"accession"
],
"properties": {
"accession": {
"type": "string",
"description": "Proteome accession as upstream writes it, lowercase."
}
},
"description": "Complete proteome record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Complete records of the selected proteome, preserved verbatim."
},
"extra_fields": {
"$ref": "#/$defs/__schema0",
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
],
"description": "Native extra fields preserved verbatim. is_fragment is boolean when supplied, null or absent means unknown, and false means not annotated as a fragment rather than proof of a complete canonical sequence."
},
"detailAvailability": {
"type": "object",
"required": [
"entries",
"taxa"
],
"properties": {
"taxa": {
"enum": [
"available",
"unavailable"
],
"type": "string",
"description": "Whether upstream supplied taxon records."
},
"entries": {
"enum": [
"available",
"unavailable"
],
"type": "string",
"description": "Whether upstream supplied entry records."
},
"proteomes": {
"enum": [
"available",
"unavailable"
],
"type": "string",
"description": "Whether upstream supplied proteome records; present only when proteomeId is set."
}
},
"description": "Absent details are unavailable, rather than biologically empty.",
"additionalProperties": false
}
},
"description": "Complete architecture-filtered protein record with explicit detail availability.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
],
"description": "Ordinary protein details, with proteome records when proteomeId is set, or an architecture-filtered record with detail availability."
},
"description": "Complete upstream protein records; architecture mode discloses unavailable details."
},
"sourceUrl": {
"type": "string",
"description": "Official API source URL."
},
"truncated": {
"type": "boolean",
"description": "More records remain."
},
"totalCount": {
"type": "number",
"description": "Upstream total matching records."
},
"effectiveQuery": {
"type": "string",
"description": "Applied selection as JSON."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}interpro_get_structure_domains — Map structure domains
Retrieve InterPro and member-signature matches on one PDB entry's protein chains. Each chain record keeps match locations in chain numbering (1-based start/end beside author auth_start/auth_end, which can be null), in UniProt numbering, and the chain-to-UniProt residue map, with discontinuous fragments preserved; the UniProt protein is null for unmapped chains. InterPro nests at most 20 chain records per match; set chain to read one chain completely. Budgeted segments hold whole matches; the first carries structure metadata listing the protein chains. Continue coverage.nextCursor until hasMore is false.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"pdbId"
],
"properties": {
"chain": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,4}$",
"maxLength": 4,
"description": "Protein chain to map, case-sensitive and one of structure.chains, such as A; omit for every chain."
},
"pdbId": {
"type": "string",
"pattern": "^[0-9][A-Za-z0-9]{3}$",
"maxLength": 4,
"description": "Four-character PDB ID such as 1tsr; case-insensitive. Extended pdb_0000… IDs are not supported."
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque coverage.nextCursor with unchanged pdbId and chain."
}
},
"additionalProperties": false
}{
"type": "object",
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"pdbId",
"matches",
"structures",
"coverage",
"url",
"sourceUrls"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"cap": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Most matches one call reads; a segment can stop sooner at the response byte budget."
},
"url": {
"type": "string",
"description": "Canonical structure website URL."
},
"chain": {
"type": "string",
"description": "Chain the map is restricted to, when one was set."
},
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"structure_not_found",
"entry_withdrawn",
"chain_not_found",
"retry_deadline_exceeded",
"invalid_cursor",
"upstream_shape_invalid",
"upstream_response_too_large",
"upstream_rejected",
"upstream_unavailable",
"upstream_timeout",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `structure_not_found`: InterPro has no current structure for the PDB ID: unassigned, obsolete, or not yet loaded. `entry_withdrawn`: InterPro reports the structure or its match list withdrawn with HTTP 410. `chain_not_found`: The chain is not one of the structure’s protein chains; IDs are case-sensitive and nucleic-acid chains are not listed. `retry_deadline_exceeded`: The shared fifty-second budget expires across the structure metadata and match pages. `invalid_cursor`: Cursor decoding or scope fails, the page it resumes inside changed, or upstream rejects continuation. `upstream_shape_invalid`: Upstream JSON, structure, or continuation is incompatible. `upstream_response_too_large`: An upstream response exceeds 4 MiB. `upstream_rejected`: InterPro returns an unhandled redirect or client rejection. `upstream_unavailable`: InterPro has a network or server failure; HTTP 501 is not retryable. `upstream_timeout`: InterPro returns HTTP 408/504 or an attempt exceeds its deadline. `upstream_rate_limited`: InterPro returns HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"pdbId": {
"type": "string",
"description": "Lowercase PDB ID."
},
"shown": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Whole matches in this segment."
},
"notice": {
"type": "string",
"description": "Interpretation, continuation, or recovery guidance."
},
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"metadata",
"chainRecordCount",
"chainRecordLimitReached"
],
"properties": {
"metadata": {
"type": "object",
"required": [
"accession",
"source_database"
],
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "Entry name when supplied."
},
"type": {
"type": [
"string",
"null"
],
"description": "Entry type when supplied."
},
"go_terms": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"identifier",
"name",
"category"
],
"properties": {
"name": {
"type": "string",
"description": "GO term name."
},
"category": {
"type": "object",
"required": [
"code",
"name"
],
"properties": {
"code": {
"type": "string",
"description": "GO category code."
},
"name": {
"type": "string",
"description": "GO category name."
}
},
"description": "GO category.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"identifier": {
"type": "string",
"description": "GO identifier."
}
},
"description": "GO annotation.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
{
"type": "null"
}
],
"description": "GO annotations when supplied."
},
"accession": {
"type": "string",
"description": "Entry accession."
},
"integrated": {
"type": [
"string",
"null"
],
"description": "Integrated InterPro accession."
},
"source_database": {
"type": "string",
"description": "Upstream source database."
},
"member_databases": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
{
"type": "null"
}
],
"description": "Member signatures grouped by database."
}
},
"description": "Entry metadata.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"chainRecordCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Chain records InterPro nested in this match, all returned in structures."
},
"chainRecordLimitReached": {
"type": "boolean",
"description": "True when the match carries InterPro’s 20-record nesting limit, so it may match chains not returned; set chain to read one chain."
}
},
"description": "Whole entry match; its chain records are in structures under its accession.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Whole matches in this segment, in upstream order; never split across segments."
},
"coverage": {
"type": "object",
"required": [
"totalMatches",
"returnedMatches",
"complete",
"hasMore"
],
"properties": {
"hasMore": {
"type": "boolean",
"description": "Whether another segment remains."
},
"complete": {
"type": "boolean",
"description": "True only when this call starts without a cursor and returns every match."
},
"nextCursor": {
"type": "string",
"description": "Opaque cursor resuming at the next whole match for the same pdbId and chain."
},
"totalMatches": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Upstream total match count for the structure, or for the chain when one is set."
},
"returnedMatches": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Whole matches in this segment; totalMatches is upstream's reported count, and a complete walk can return a different number."
}
},
"description": "Where this segment sits in the structure map.",
"additionalProperties": false
},
"structure": {
"type": "object",
"required": [
"accession",
"source_database",
"chains"
],
"properties": {
"chains": {
"type": "array",
"items": {
"type": "string",
"description": "Protein chain ID."
},
"description": "Protein chain IDs; nucleic-acid chains are not listed."
},
"accession": {
"type": "string",
"description": "Lowercase PDB ID."
},
"source_database": {
"type": "string",
"description": "Structure source database."
}
},
"description": "Complete upstream structure metadata on the first segment, the call without cursor; continuation segments omit it.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"truncated": {
"type": "boolean",
"description": "More segments remain."
},
"sourceUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Official API URLs this call read."
},
"structures": {
"type": "array",
"items": {
"type": "object",
"required": [
"entry",
"record"
],
"properties": {
"entry": {
"type": "string",
"description": "Accession of the match in matches this record belongs to."
},
"record": {
"type": "object",
"required": [
"accession",
"chain",
"protein",
"entry_structure_locations"
],
"properties": {
"chain": {
"type": "string",
"description": "Case-sensitive chain ID."
},
"protein": {
"type": [
"string",
"null"
],
"description": "Lowercase UniProt accession mapped to the chain; null when unmapped."
},
"accession": {
"type": "string",
"description": "Lowercase PDB ID."
},
"entry_protein_locations": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"fragments"
],
"properties": {
"model": {
"type": [
"string",
"null"
],
"description": "Source model."
},
"score": {
"type": [
"number",
"null"
],
"description": "Upstream match score."
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status."
}
},
"description": "Complete continuous or discontinuous sequence fragment.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty sequence fragments."
},
"representative": {
"type": [
"boolean",
"null"
],
"description": "Representative match flag."
}
},
"description": "Complete upstream match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
{
"type": "null"
}
],
"description": "Match locations in UniProt numbering; null or empty without a usable mapping."
},
"entry_structure_locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"fragments"
],
"properties": {
"model": {
"type": [
"string",
"null"
],
"description": "Source model."
},
"score": {
"type": [
"number",
"null"
],
"description": "Upstream match score."
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status."
}
},
"description": "Complete continuous or discontinuous sequence fragment.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty sequence fragments."
},
"representative": {
"type": [
"boolean",
"null"
],
"description": "Representative match flag."
}
},
"description": "Complete upstream match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Match locations in chain numbering: start/end are 1-based chain positions; auth_start/auth_end are author residue numbers, possibly null."
},
"structure_protein_locations": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"fragments"
],
"properties": {
"model": {
"type": [
"string",
"null"
],
"description": "Source model."
},
"score": {
"type": [
"number",
"null"
],
"description": "Upstream match score."
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status."
}
},
"description": "Complete continuous or discontinuous sequence fragment.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty sequence fragments."
},
"representative": {
"type": [
"boolean",
"null"
],
"description": "Representative match flag."
}
},
"description": "Complete upstream match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
{
"type": "null"
}
],
"description": "Chain-to-UniProt residue maps: start/end in chain numbering, protein_start/protein_end in UniProt numbering."
}
},
"description": "Complete upstream chain record.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "One upstream chain record of a match, unchanged.",
"additionalProperties": false
},
"description": "Every chain record of this segment’s matches, grouped by match in matches order."
},
"totalCount": {
"type": "number",
"description": "Upstream total matching records."
},
"effectiveQuery": {
"type": "string",
"description": "Applied pdbId and chain as JSON."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}interpro_scan_sequence — Scan a protein sequence
Find InterPro domain, family, and site matches for one raw protein sequence that has no UniProt accession. Sequences already in UniParc return precalculated matches at once; any other sequence starts one InterProScan 6 job, which commonly runs about ten minutes, so the usual first result is a jobId to read with interpro_get_scan_result. Repeating a sequence whose job is still running returns the same jobId instead of starting another. Matches are InterProScan records verbatim, 1-based and inclusive, each naming its member database and release.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sequence"
],
"properties": {
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque coverage.nextCursor from an earlier call with this same sequence, to read the next segment of precalculated matches."
},
"sequence": {
"type": "string",
"maxLength": 100000,
"description": "One protein sequence as residue letters, optionally preceded by a single FASTA header line. Case, spaces, and line breaks are ignored; digits, gaps, and stop symbols (*) are rejected."
},
"waitSeconds": {
"type": "integer",
"default": 30,
"maximum": 35,
"minimum": 0,
"description": "Seconds to wait for a newly started job to finish before returning its jobId; 0 starts the job and returns at once."
}
},
"additionalProperties": false
}{
"type": "object",
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"source",
"status",
"sourceUrl"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"md5": {
"type": "string",
"description": "Uppercase hex MD5 of the uppercased residues, the UniParc sequence digest."
},
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"empty_sequence",
"invalid_residue",
"multiple_sequences",
"invalid_cursor",
"scan_not_configured",
"rate_limited",
"scan_rejected",
"scan_failed",
"scan_not_found",
"retry_deadline_exceeded",
"upstream_shape_invalid",
"upstream_response_too_large",
"upstream_rejected",
"upstream_unavailable",
"upstream_timeout",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `empty_sequence`: The sequence holds no residue letters. `invalid_residue`: The sequence holds a character other than a residue letter or whitespace. `multiple_sequences`: The input holds more than one FASTA record. `invalid_cursor`: The cursor is malformed, belongs to another sequence or result, or the result changed. `scan_not_configured`: The sequence has no precalculated matches and this server cannot submit InterProScan jobs. `rate_limited`: The server already holds its maximum of in-flight InterProScan jobs; nothing was submitted. `scan_rejected`: The Job Dispatcher rejected the submission with HTTP 400. `scan_failed`: The InterProScan job ended with status ERROR or FAILURE. `scan_not_found`: The Job Dispatcher no longer holds the job this sequence was waiting on. `retry_deadline_exceeded`: Lookup, submission, polling, and result reading exhausted the fifty-second call budget. `upstream_shape_invalid`: The Matches API or Job Dispatcher returned a response this server cannot read. `upstream_response_too_large`: An upstream response exceeds 4 MiB. `upstream_rejected`: An upstream service returned an unhandled redirect or client rejection. `upstream_unavailable`: An upstream service had a network or server failure. `upstream_timeout`: An upstream request returned HTTP 408/504 or exceeded its attempt deadline. `upstream_rate_limited`: An upstream service returned HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"jobId": {
"type": "string",
"description": "InterProScan job ID on the interproscan path; results stay retrievable for seven days."
},
"shown": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Match records in this segment."
},
"length": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Sequence length in residues."
},
"notice": {
"type": "string",
"description": "Job, continuation, or empty-result guidance."
},
"source": {
"enum": [
"precalculated",
"interproscan"
],
"type": "string",
"description": "Which path produced the result: precalculated matches from the InterPro Matches API, or an InterProScan 6 job run through the EBI Job Dispatcher."
},
"status": {
"enum": [
"finished",
"queued",
"running",
"submitted"
],
"type": "string",
"description": "finished: matches are present. queued or running: the job is pending; read it later with interpro_get_scan_result. submitted: accepted in this call and not yet polled."
},
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"signature",
"model-ac",
"source",
"locations"
],
"properties": {
"source": {
"type": "string",
"description": "Method that produced the match, such as Pfam or InterPro-N, exactly as the source spells it."
},
"model-ac": {
"type": [
"string",
"null"
],
"description": "Model accession within the signature."
},
"locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end",
"location-fragments"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"location-fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end",
"dc-status"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status, such as CONTINUOUS, N_TERMINAL_DISC, or C_TERMINAL_DISC."
}
},
"description": "One continuous piece of a possibly discontinuous match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty fragments of this location."
}
},
"description": "One match location with every upstream field, such as scores, e-values, HMM bounds, envelope, sites, and alignments.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Match locations on the sequence."
},
"signature": {
"type": "object",
"required": [
"accession",
"signatureLibraryRelease"
],
"properties": {
"entry": {
"anyOf": [
{
"type": "object",
"required": [
"accession"
],
"properties": {
"accession": {
"type": "string",
"description": "Integrated InterPro entry accession."
}
},
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
{
"type": "null"
}
],
"description": "InterPro entry the signature is integrated into; null when unintegrated."
},
"accession": {
"type": "string",
"description": "Member-database signature accession, such as PF13499."
},
"signatureLibraryRelease": {
"type": "object",
"required": [
"library",
"version"
],
"properties": {
"library": {
"type": "string",
"description": "Member database name exactly as the source spells it, such as Pfam."
},
"version": {
"type": "string",
"description": "Member database release that produced this match."
}
},
"description": "Library and release of this signature.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "Matched signature, including name, description, and type when supplied.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "One InterProScan match record, verbatim.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Whole match records in this segment when finished, sorted by earliest location start then signature accession; coordinates are 1-based and inclusive. Each record keeps its own source and signatureLibraryRelease."
},
"coverage": {
"type": "object",
"required": [
"totalMatches",
"offset",
"returnedMatches",
"hasMore"
],
"properties": {
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Match records that precede this segment."
},
"hasMore": {
"type": "boolean",
"description": "Whether another segment remains."
},
"nextCursor": {
"type": "string",
"description": "Opaque cursor for the next segment; pass it unchanged to the tool the notice names."
},
"totalMatches": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Match records in the complete result."
},
"returnedMatches": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Match records in this segment."
}
},
"description": "Where this segment sits in the complete match list; present when finished.",
"additionalProperties": false
},
"sourceUrl": {
"type": "string",
"description": "Upstream endpoint that supplied this result."
},
"truncated": {
"type": "boolean",
"description": "More segments remain."
},
"totalCount": {
"type": "number",
"description": "Match records in the complete result."
},
"interproVersion": {
"type": "string",
"description": "InterPro release of a finished InterProScan job."
},
"interproscanVersion": {
"type": "string",
"description": "InterProScan version of a finished job."
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}interpro_get_scan_result — Read an InterProScan job
Check an InterProScan job started by interpro_scan_sequence, waiting up to waitSeconds for it to finish. Returns the matches once finished, otherwise its queued or running status to check again later. Matches are InterProScan records verbatim, 1-based and inclusive, with the InterPro and InterProScan versions that produced them. Jobs and their results expire seven days after submission.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"pattern": "^iprscan6-[A-Z]\\d{8}-\\d{6}-\\d{4}-\\d{1,12}-[a-z0-9]{1,8}$",
"maxLength": 64,
"description": "jobId returned by interpro_scan_sequence, such as iprscan6-R20261028-131532-0930-13189043-p1m."
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque coverage.nextCursor from an earlier result for this same jobId, to read the next segment."
},
"waitSeconds": {
"type": "integer",
"default": 30,
"maximum": 35,
"minimum": 0,
"description": "Seconds to wait for a pending job to finish; 0 checks its status once and returns."
}
},
"additionalProperties": false
}{
"type": "object",
"$defs": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
}
]
}
},
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"source",
"status",
"sourceUrl"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"md5": {
"type": "string",
"description": "Uppercase hex MD5 of the uppercased residues, the UniParc sequence digest."
},
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"invalid_cursor",
"scan_failed",
"scan_not_found",
"retry_deadline_exceeded",
"upstream_shape_invalid",
"upstream_response_too_large",
"upstream_rejected",
"upstream_unavailable",
"upstream_timeout",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `invalid_cursor`: The cursor is malformed, belongs to another job, or no longer fits the result. `scan_failed`: The InterProScan job ended with status ERROR or FAILURE. `scan_not_found`: The Job Dispatcher has no such job: it never existed or expired after seven days. `retry_deadline_exceeded`: Polling and result reading exhausted the fifty-second call budget. `upstream_shape_invalid`: The Job Dispatcher returned a response this server cannot read. `upstream_response_too_large`: The job result exceeds 4 MiB. `upstream_rejected`: The Job Dispatcher returned an unhandled redirect or client rejection. `upstream_unavailable`: The Job Dispatcher had a network or server failure. `upstream_timeout`: A Job Dispatcher request returned HTTP 408/504 or exceeded its attempt deadline. `upstream_rate_limited`: The Job Dispatcher returned HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"jobId": {
"type": "string",
"description": "InterProScan job ID on the interproscan path; results stay retrievable for seven days."
},
"shown": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Match records in this segment."
},
"length": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Sequence length in residues."
},
"notice": {
"type": "string",
"description": "Job, continuation, or empty-result guidance."
},
"source": {
"enum": [
"precalculated",
"interproscan"
],
"type": "string",
"description": "Which path produced the result: precalculated matches from the InterPro Matches API, or an InterProScan 6 job run through the EBI Job Dispatcher."
},
"status": {
"enum": [
"finished",
"queued",
"running",
"submitted"
],
"type": "string",
"description": "finished: matches are present. queued or running: the job is pending; read it later with interpro_get_scan_result. submitted: accepted in this call and not yet polled."
},
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"signature",
"model-ac",
"source",
"locations"
],
"properties": {
"source": {
"type": "string",
"description": "Method that produced the match, such as Pfam or InterPro-N, exactly as the source spells it."
},
"model-ac": {
"type": [
"string",
"null"
],
"description": "Model accession within the signature."
},
"locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end",
"location-fragments"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"location-fragments": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end",
"dc-status"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based end residue.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inclusive 1-based start residue.",
"exclusiveMinimum": 0
},
"dc-status": {
"type": "string",
"description": "Discontinuity status, such as CONTINUOUS, N_TERMINAL_DISC, or C_TERMINAL_DISC."
}
},
"description": "One continuous piece of a possibly discontinuous match location.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"minItems": 1,
"description": "Nonempty fragments of this location."
}
},
"description": "One match location with every upstream field, such as scores, e-values, HMM bounds, envelope, sites, and alignments.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Match locations on the sequence."
},
"signature": {
"type": "object",
"required": [
"accession",
"signatureLibraryRelease"
],
"properties": {
"entry": {
"anyOf": [
{
"type": "object",
"required": [
"accession"
],
"properties": {
"accession": {
"type": "string",
"description": "Integrated InterPro entry accession."
}
},
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
{
"type": "null"
}
],
"description": "InterPro entry the signature is integrated into; null when unintegrated."
},
"accession": {
"type": "string",
"description": "Member-database signature accession, such as PF13499."
},
"signatureLibraryRelease": {
"type": "object",
"required": [
"library",
"version"
],
"properties": {
"library": {
"type": "string",
"description": "Member database name exactly as the source spells it, such as Pfam."
},
"version": {
"type": "string",
"description": "Member database release that produced this match."
}
},
"description": "Library and release of this signature.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "Matched signature, including name, description, and type when supplied.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
}
},
"description": "One InterProScan match record, verbatim.",
"additionalProperties": {
"$ref": "#/$defs/__schema0",
"description": "An unmodified JSON value."
}
},
"description": "Whole match records in this segment when finished, sorted by earliest location start then signature accession; coordinates are 1-based and inclusive. Each record keeps its own source and signatureLibraryRelease."
},
"coverage": {
"type": "object",
"required": [
"totalMatches",
"offset",
"returnedMatches",
"hasMore"
],
"properties": {
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Match records that precede this segment."
},
"hasMore": {
"type": "boolean",
"description": "Whether another segment remains."
},
"nextCursor": {
"type": "string",
"description": "Opaque cursor for the next segment; pass it unchanged to the tool the notice names."
},
"totalMatches": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Match records in the complete result."
},
"returnedMatches": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Match records in this segment."
}
},
"description": "Where this segment sits in the complete match list; present when finished.",
"additionalProperties": false
},
"sourceUrl": {
"type": "string",
"description": "Upstream endpoint that supplied this result."
},
"truncated": {
"type": "boolean",
"description": "More segments remain."
},
"totalCount": {
"type": "number",
"description": "Match records in the complete result."
},
"interproVersion": {
"type": "string",
"description": "InterPro release of a finished InterProScan job."
},
"interproscanVersion": {
"type": "string",
"description": "InterProScan version of a finished job."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}Prompts
0 advertised
Resources
1 advertised
interpro-guide
Identifier chains, gates, and numbering conventions for the interpro_* tools - domain maps for UniProt proteins, PDB chains, and raw sequences; member signatures versus InterPro entries; Pfam clans; GO terms; same-architecture protein discovery. Use when asked which domains a protein, structure chain, or sequence carries, when converting chain, author, and UniProt residue numbers, or when an interpro_* result feeds the next call.
skill://interpro-guide/SKILL.mdio.modelcontextprotocol/skills
skill://{+path}30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 614 ms
- 95th percentile latency
- 614 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 614 ms · metadata changed · 9 tool(s), 1 resource(s), 1 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http interpro-mcp-server-caseyjhand https://interpro.caseyjhand.com/mcpCodex
codex mcp add interpro-mcp-server-caseyjhand --url https://interpro.caseyjhand.com/mcpCursor
{
"mcpServers": {
"interpro-mcp-server-caseyjhand": {
"url": "https://interpro.caseyjhand.com/mcp"
}
}
}Cline
{
"mcpServers": {
"interpro-mcp-server-caseyjhand": {
"type": "streamableHttp",
"url": "https://interpro.caseyjhand.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"interpro-mcp-server-caseyjhand": {
"type": "http",
"url": "https://interpro.caseyjhand.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http interpro-mcp-server-caseyjhand https://interpro.caseyjhand.com/mcpClaude Desktop
{
"mcpServers": {
"interpro-mcp-server-caseyjhand": {
"url": "https://interpro.caseyjhand.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"interpro-mcp-server-caseyjhand": {
"serverUrl": "https://interpro.caseyjhand.com/mcp"
}
}
}Let your agent find its tools
Find servers like interpro-mcp-server from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.