Search / io.github.cyanheads/interpro-mcp-server
interpro-mcp-server
R0· no sign-inSearch InterPro entries, map domains onto proteins and PDB structures, and scan raw sequences.
v0.2.0 · active · repository · descriptor JSON · versions
Search / io.github.cyanheads/interpro-mcp-server
R0· no sign-inSearch InterPro entries, map domains onto proteins and PDB structures, and scan raw sequences.
v0.2.0 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"interpro-mcp-server": {
"type": "http",
"url": "https://interpro.caseyjhand.com/mcp"
}
}
}claude mcp add --transport http interpro-mcp-server https://interpro.caseyjhand.com/mcp[mcp_servers.interpro-mcp-server]
url = "https://interpro.caseyjhand.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"interpro-mcp-server": {
"type": "remote",
"url": "https://interpro.caseyjhand.com/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"interpro-mcp-server": {
"type": "http",
"url": "https://interpro.caseyjhand.com/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=interpro-mcp-server&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vaW50ZXJwcm8uY2FzZXlqaGFuZC5jb20vbWNwIn0%3D"
}{
"servers": {
"interpro-mcp-server": {
"type": "http",
"url": "https://interpro.caseyjhand.com/mcp"
}
}
}{
"mcpServers": {
"interpro-mcp-server": {
"httpUrl": "https://interpro.caseyjhand.com/mcp"
}
}
}extensions:
"interpro-mcp-server":
enabled: true
name: "interpro-mcp-server"
type: streamable_http
uri: "https://interpro.caseyjhand.com/mcp"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations9 of 9 tools declare readOnlyHint or destructiveHinttools.directory_hints1 of 9 tools declare all four hints; missing: interpro_get_clan (destructiveHint); interpro_find_proteins_by_domain (destructiveHint); interpro_get_structure_domains (destructiveHint); …tools.token_costabout 3,643 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes10 tool changes in 30 daysstability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know @cyanheads/[email protected], @cyanheads/[email protected]interpro_get_scan_resultaddedCheck 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.
interpro_scan_sequenceaddedFind 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.
interpro_get_structure_domainsaddedRetrieve 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.
interpro_find_proteins_by_domainchangeddescription, input schema, output schemaFind 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.
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.
interpro_get_protein_domainschangedoutput schemainterpro_list_referencechangeddescription, output schemaList supported InterPro database slugs, entry types, accession routing patterns, common taxon IDs, or current release information.
List supported InterPro database slugs, entry types, accession and PDB identifier patterns, common taxon IDs, or current release information.
interpro_find_proteins_by_domainchangeddescription, input schema, output schemaFind UniProt proteins carrying an InterPro or member signature. Defaults to reviewed human proteins; reviewedOnly=false includes reviewed and unreviewed proteins in the chosen taxon. Optional isFragment filters fragment annotations; false does not prove a complete canonical sequence.
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.
interpro_get_protein_domainschangeddescription, input schema, output schemaRetrieve InterPro and member-signature matches on a canonical UniProt protein, preserving every location and discontinuous fragment. Optionally retain matches covering a residue and include extra predicted features. Large maps arrive in segments of whole matches that fit the response budget: the first segment carries the protein metadata, requested extra features follow the last match, and coverage.nextCursor continues until hasMore is false.
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.
interpro_get_entrychangeddescription, input schema, output schemameaning changedRetrieve one InterPro or member-database entry, including description, hierarchy, member signatures, GO terms, literature, cross-references, clan membership, and coverage counters.
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.
interpro_search_entrieschangedinput schema, output schemaFull history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +reachable +uptime-100% +updated-10d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
@cyanheads/[email protected] npmthis version is not known to the dependency resolver
@cyanheads/[email protected] npmthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://interpro.caseyjhand.com/mcp streamable-http | none | yes | 100% | 345 ms | 2026-07-28 | 2026-11-07 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
@cyanheads/interpro-mcp-server | npm | 0.2.0 | npx | |
@cyanheads/interpro-mcp-server | npm | 0.2.0 | npx |
interpro_find_proteins_by_domainread-only | 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. |
interpro_get_clanread-only | 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. |
interpro_get_entryread-only | 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. |
interpro_get_protein_domainsread-only | 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. |
interpro_get_scan_resultread-only | 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. |
interpro_get_structure_domainsread-only | 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. |
interpro_list_referenceread-only | List supported InterPro database slugs, entry types, accession and PDB identifier patterns, common taxon IDs, or current release information. |
interpro_scan_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. |
interpro_search_entriesread-only | 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. |
Schemas: list_tools.
And 153 more from this publisher.
{
"name": "io.github.cyanheads/interpro-mcp-server",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://interpro.caseyjhand.com/mcp",
"type": "streamable-http"
}
],
"version": "0.2.0",
"packages": [
{
"version": "0.2.0",
"transport": {
"type": "stdio"
},
"identifier": "@cyanheads/interpro-mcp-server",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "MCP_LOG_LEVEL",
"format": "string",
"default": "info",
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
},
{
"name": "INTERPRO_SCAN_EMAIL",
"format": "string",
"description": "Contact email the EBI Job Dispatcher requires to submit InterProScan jobs. Optional: without it interpro_scan_sequence still returns precalculated matches for sequences already in UniParc and fails other sequences as scan_not_configured, and interpro_get_scan_result still reads existing jobs. EBI stores the address with job data for seven days, and one address covers every caller of the server."
}
]
},
{
"version": "0.2.0",
"transport": {
"url": "http://localhost:3010/mcp",
"type": "streamable-http"
},
"identifier": "@cyanheads/interpro-mcp-server",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "MCP_TRANSPORT_TYPE",
"value": "http",
"format": "string",
"description": "Selects the HTTP transport."
},
{
"name": "MCP_HTTP_HOST",
"format": "string",
"default": "127.0.0.1",
"description": "The hostname for the HTTP server."
},
{
"name": "MCP_HTTP_PORT",
"format": "string",
"default": "3010",
"description": "The port to run the HTTP server on."
},
{
"name": "MCP_HTTP_ENDPOINT_PATH",
"format": "string",
"default": "/mcp",
"description": "The endpoint path for the MCP server."
},
{
"name": "MCP_AUTH_MODE",
"format": "string",
"default": "none",
"description": "Authentication mode to use: 'none', 'jwt', or 'oauth'."
},
{
"name": "MCP_LOG_LEVEL",
"format": "string",
"default": "info",
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
},
{
"name": "INTERPRO_SCAN_EMAIL",
"format": "string",
"description": "Contact email the EBI Job Dispatcher requires to submit InterProScan jobs. Optional: without it interpro_scan_sequence still returns precalculated matches for sequences already in UniParc and fails other sequences as scan_not_configured, and interpro_get_scan_result still reads existing jobs. EBI stores the address with job data for seven days, and one address covers every caller of the server."
}
]
}
],
"repository": {
"url": "https://github.com/cyanheads/interpro-mcp-server",
"source": "github"
},
"description": "Search InterPro entries, map domains onto proteins and PDB structures, and scan raw sequences."
}