protogrid

Search / io.github.cyanheads/interpro-mcp-server

interpro-mcp-server

R0· no sign-in

Search InterPro entries, map domains onto proteins and PDB structures, and scan raw sequences.

v0.2.0 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality76good
Trust94of 100
Uptime, 30 days100%
Latency p50345 ms

Connect

8 clients · secrets stay placeholders
{
  "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

Quality 76 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations9 of 9 tools declare readOnlyHint or destructiveHint
  • warn
    tools.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); …
  • pass
    tools.token_costabout 3,643 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes10 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15

9 tools, about 3,643 tokens to load them all · tool set 9583e24e8224 · tools last changed 2026-10-28 · checked 2026-11-07 18:35 UTC

Tool changes

  • interpro_get_scan_resultadded

    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_scan_sequenceadded

    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_get_structure_domainsadded

    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_find_proteins_by_domainchangeddescription, input schema, output schema
    before

    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.

    after · 82% of words in common

    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 schema
  • interpro_list_referencechangeddescription, output schema
    before

    List supported InterPro database slugs, entry types, accession routing patterns, common taxon IDs, or current release information.

    after · 80% of words in common

    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 schema
    before

    Find 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.

    after · 50% of words in common

    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 schema
    before

    Retrieve 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.

    after · 58% of words in common

    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 changed
    before

    Retrieve one InterPro or member-database entry, including description, hierarchy, member signatures, GO terms, literature, cross-references, clan membership, and coverage counters.

    after · 16% of words in common

    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 schema

Full 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.

Trust 94 / 100

provenance80
liveness100
freshness100
hygiene100

+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.

Dependencies

@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.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://interpro.caseyjhand.com/mcp streamable-httpnoneyes100%345 ms2026-07-282026-11-07
packageregistryversionruntimesecrets
@cyanheads/interpro-mcp-servernpm0.2.0npx
@cyanheads/interpro-mcp-servernpm0.2.0npx

Tools (9)

interpro_find_proteins_by_domainread-onlyFind 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-onlyRetrieve 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-onlyRetrieve 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-onlyRetrieve 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-onlyCheck 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-onlyRetrieve 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-onlyList supported InterPro database slugs, entry types, accession and PDB identifier patterns, common taxon IDs, or current release information.
interpro_scan_sequenceFind 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-onlySearch 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.

Similar MCP servers

More from io.github.cyanheads

And 153 more from this publisher.

Official server.json
{
  "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."
}