# io.github.cyanheads/interpro-mcp-server (remote · interpro.caseyjhand.com)

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

- Trust score: 80/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `interpro.caseyjhand.com`: 80/100 (this document), [markdown](https://verifymcp.io/servers/cyanheads-interpro-mcp-server/interpro.md), [page](https://verifymcp.io/servers/cyanheads-interpro-mcp-server/interpro)
- npm · `@cyanheads/interpro-mcp-server`: 39/100, [markdown](https://verifymcp.io/servers/cyanheads-interpro-mcp-server/cyanheads-interpro-mcp-server.md), [page](https://verifymcp.io/servers/cyanheads-interpro-mcp-server/cyanheads-interpro-mcp-server)

## Channel facts

- Endpoint: `https://interpro.caseyjhand.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.2.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 83/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 75/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2571 tokens (~257/item across 10 items; 9 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 40/100
  - Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the io.github.cyanheads/interpro-mcp-server server?

io.github.cyanheads/interpro-mcp-server is a hosted endpoint at https://interpro.caseyjhand.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http cyanheads-interpro-mcp-server 'https://interpro.caseyjhand.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "cyanheads-interpro-mcp-server": {
      "url": "https://interpro.caseyjhand.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "cyanheads-interpro-mcp-server": {
      "type": "http",
      "url": "https://interpro.caseyjhand.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.cyanheads-interpro-mcp-server]
url = "https://interpro.caseyjhand.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cyanheads-interpro-mcp-server": {
      "type": "remote",
      "url": "https://interpro.caseyjhand.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add cyanheads-interpro-mcp-server --url 'https://interpro.caseyjhand.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  cyanheads-interpro-mcp-server:
    url: "https://interpro.caseyjhand.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "cyanheads-interpro-mcp-server": {
      "Transport": "http",
      "Url": "https://interpro.caseyjhand.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add cyanheads-interpro-mcp-server -t streamable-http -u 'https://interpro.caseyjhand.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "cyanheads-interpro-mcp-server": {
      "type": "http",
      "url": "https://interpro.caseyjhand.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 77, +4)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “interpro_find_proteins_by_domain” rewrote its description, which is the text the model reads
- [security] Tool “interpro_list_reference” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 1584 → 2571
- [functional] First check of Schema quality: 100
- [functional] New resource “interpro-guide”
- [functional] Server version: 0.1.3 → 0.2.0
- [functional] New tool “interpro_get_scan_result”
- [functional] New tool “interpro_get_structure_domains”
- [functional] New tool “interpro_scan_sequence”
- [cosmetic] “interpro_find_proteins_by_domain” added an optional parameter “proteomeId”
- [cosmetic] “interpro_find_proteins_by_domain” reworded the description of “cursor”

### 2026-10-26 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 72, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-24 (score 72)

First indexed and scored.

## MCP tools (9)

### `interpro_list_reference` (~53 tokens)

InterPro reference vocabulary

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

Input parameters:

- `topic` (string, required): Reference topic; release retrieves current upstream metadata.

Output parameters:

- `error` (object): Present when the call failed. Absent on success.
- `items` (array): Applicable reference vocabulary; empty for release.
- `release` (object): Current live release metadata when requested.
- `sourceUrls` (array): Official reference sources.
- `topic` (string): Reference topic; release retrieves current upstream metadata.

### `interpro_search_entries` (~236 tokens)

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.

Input parameters:

- `cursor` (string): Opaque nextCursor from this tool with unchanged filters; limit may change.
- `entryType` (string): Entry annotation type.
- `goCategory` (string): GO category: P biological process, F molecular function, C cellular component; requires sourceDatabase interpro and cannot combine with goTerm.
- `goTerm` (string): GO annotation identifier such as GO:0003677; requires sourceDatabase interpro and cannot combine with goCategory.
- `integratedInto` (string): Integrating InterPro accession; requires a member sourceDatabase.
- `limit` (integer): Positive integer page size; values above 100 are clamped to 100 with a notice; defaults to 20.
- `query` (string): Text to search; omit all filters to browse the database.
- `sourceDatabase` (string): Database to search; defaults to interpro.

Output parameters:

- `cap` (integer): Effective page size after clamping.
- `effectiveQuery` (string): Applied filters as JSON.
- `entries` (array): Complete entry summaries from this page.
- `error` (object): Present when the call failed. Absent on success.
- `notice` (string): Interpretation or recovery guidance.
- `page` (object): Continuation and upstream total.
- `query` (object): Applied canonical filters.
- `shown` (integer): Records returned in this page.
- `sourceUrl` (string): Official API source URL.
- `totalCount` (number): Upstream total matching records.
- `truncated` (boolean): More records remain.

### `interpro_get_entry` (~205 tokens)

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.

Input parameters:

- `accession` (string, required): InterPro or member-database entry accession, such as IPR011615 or PF00870; no URL syntax.
- `includeThumbnail` (boolean): Include each Wikipedia thumbnail image, base64 data often hundreds of KB; defaults to false.
- `overlapLimit` (integer): Positive safe integer number of whole overlap records; supplying it enables overlap paging.
- `overlapOffset` (integer): Nonnegative safe integer overlap offset; requires overlapLimit, defaults to zero.
- `sections` (array): Retain these named sections and all core or unknown metadata; omitted means full detail, and an empty array retains core metadata only.
- `sourceDatabase` (string): Database slug; inferred from standard accession prefixes when omitted.

Output parameters:

- `accession` (string): Canonical requested accession.
- `entry` (object): Upstream metadata after explicit section selection and overlap paging, with readable descriptionText when description is retained; raw description shapes and sparse annotations survive. Wikipedia thu…
- `error` (object): Present when the call failed. Absent on success.
- `notice` (string): Section selection, overlap page continuation or availability, and omitted Wikipedia thumbnail guidance.
- `omittedSections` (array): Named sections actually removed from upstream metadata.
- `overlapsPage`: Explicit overlap paging state; unavailable arrays have no fabricated total.
- `sections` (array): Canonical selected sections, when explicitly selected.
- `sourceDatabase` (string): InterPro entry API database slug.
- `sourceUrl` (string): Official API source URL.
- `totalCount` (integer): Total upstream overlap records when explicit paging has an available array.
- `url` (string): Canonical InterPro website URL.

### `interpro_get_clan` (~280 tokens)

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.

Input parameters:

- `accession` (string, required): Set accession, such as CL0016 (Pfam), cl21453 (CDD), or PIRSF000047; no URL syntax.
- `cursor` (string): Opaque nextCursor with unchanged accession, sourceDatabase, and includeRelationships; limit, relationshipOffset, and includeThumbnail may change.
- `includeRelationships` (boolean): Include the relationship graph, one slice per call that fits the response budget; defaults to false.
- `includeThumbnail` (boolean): Include each Wikipedia thumbnail image, base64 data often tens of KB; defaults to false.
- `limit` (integer): Positive integer member page size; values above 100 are clamped to 100 with a notice; defaults to 20.
- `relationshipOffset` (integer): 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.
- `sourceDatabase` (string): Inferred from uppercase CL (Pfam), lowercase cl (CDD), or PIRSF; supply explicitly for mixed-case CL prefixes.

Output parameters:

- `accession` (string): Canonical requested clan accession.
- `cap` (integer): Effective member page size after clamping.
- `clan` (object): Complete metadata, with relationships and Wikipedia thumbnails omitted unless requested; requested relationships hold the slice relationshipsPage locates.
- `effectiveQuery` (string): Applied canonical target, relationship, and thumbnail selection.
- `error` (object): Present when the call failed. Absent on success.
- `members` (array): Complete upstream member records.
- `notice` (string): Next relationship slice call, omitted relationships or thumbnails, or empty-page guidance.
- `page` (object): Member continuation and total.
- `relationshipsIncluded` (boolean): Whether relationship projection was requested.
- `relationshipsPage` (object): Position and totals of the relationship slice; present only when includeRelationships is true.
- `shown` (integer): Members returned in this page.
- `sourceDatabase` (string): Set database.
- `sourceUrl` (string): Official clan metadata API source URL.
- `totalCount` (number): Total matching members.
- `truncated` (boolean): More members remain.
- `url` (string): Canonical InterPro clan website URL.

### `interpro_get_protein_domains` (~217 tokens)

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.

Input parameters:

- `accession` (string, required): Canonical six- or ten-character UniProt accession, without an isoform suffix.
- `cursor` (string): Opaque coverage.nextCursor with unchanged accession, residuePosition, includeExtraFeatures, and includeResidueAnnotations.
- `includeExtraFeatures` (boolean): Include complete extra predicted features, returned after the last match; defaults to false.
- `includeResidueAnnotations` (boolean): Include complete functional residue rules after matches and requested extras; defaults to false.
- `residuePosition` (integer): Residue position, 1-based and inclusive; must not exceed protein length.

Output parameters:

- `accession` (string): Canonical UniProt accession.
- `cap` (integer): Most match records one call reads; a segment can stop sooner at the response byte budget.
- `coverage` (object): Where this segment sits in the protein map: matches, requested extra features, then requested residue rules.
- `effectiveQuery` (string): Applied selection as JSON.
- `error` (object): Present when the call failed. Absent on success.
- `extraFeatures` (object): 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.
- `matches` (array): Whole selected match records in this segment, sorted by earliest coordinate then accession; a match is never split across segments.
- `notice` (string): Interpretation, continuation, or recovery guidance.
- `protein` (object): Complete upstream protein metadata on the first segment, the call without cursor; continuation segments omit it.
- `residueAnnotations` (object): Whole selected residue rules sorted by key; {} means the stage was reached with no selected rules. Omitted when unrequested or unreached.
- `selection` (object): Applied residue, extra-feature, and residue-rule selection.
- `shown` (integer): Selected match records in this segment.
- `sourceUrl` (string): Official protein API source URL.
- `totalCount` (number): Upstream total matching records.
- `truncated` (boolean): More segments remain.
- `url` (string): Canonical protein website URL.

### `interpro_find_proteins_by_domain` (~429 tokens)

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.

Input parameters:

- `accession` (string, required): InterPro or member-database entry accession, such as IPR011615 or PF00870; no URL syntax.
- `architectureId` (string): Optional 40-character hexadecimal Pfam architecture grouping ID from protein.ida_accession; grouping does not establish functional equivalence.
- `cursor` (string): Opaque nextCursor with unchanged target, taxonId, reviewedOnly, isFragment, architectureId, and proteomeId selection; limit may change.
- `isFragment` (boolean): Select fragment annotations: true for fragments, false for proteins not annotated as fragments; omit to include both. False does not establish sequence completeness.
- `limit` (integer): Positive integer page size; values above 50 are clamped to 50 with a notice; defaults to 20.
- `proteomeId` (string): 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…
- `reviewedOnly` (boolean): Defaults to reviewed proteins; false includes reviewed and unreviewed proteins.
- `sourceDatabase` (string): Entry database slug, inferred from standard accession prefixes when omitted.
- `taxonId` (string): Positive NCBI taxonomy identifier of at most 10 digits; defaults to human 9606.

Output parameters:

- `cap` (integer): Effective page size after clamping.
- `effectiveQuery` (string): Applied selection as JSON.
- `error` (object): Present when the call failed. Absent on success.
- `notice` (string): Interpretation or recovery guidance.
- `page` (object): Page coverage and continuation.
- `proteins` (array): Complete upstream protein records; architecture mode discloses unavailable details.
- `query` (object): Applied canonical target and selection, including defaults.
- `shown` (integer): Selected records returned.
- `sourceUrl` (string): Official API source URL.
- `totalCount` (number): Upstream total matching records.
- `truncated` (boolean): More records remain.

### `interpro_get_structure_domains` (~213 tokens)

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.

Input parameters:

- `chain` (string): Protein chain to map, case-sensitive and one of structure.chains, such as A; omit for every chain.
- `cursor` (string): Opaque coverage.nextCursor with unchanged pdbId and chain.
- `pdbId` (string, required): Four-character PDB ID such as 1tsr; case-insensitive. Extended pdb_0000… IDs are not supported.

Output parameters:

- `cap` (integer): Most matches one call reads; a segment can stop sooner at the response byte budget.
- `chain` (string): Chain the map is restricted to, when one was set.
- `coverage` (object): Where this segment sits in the structure map.
- `effectiveQuery` (string): Applied pdbId and chain as JSON.
- `error` (object): Present when the call failed. Absent on success.
- `matches` (array): Whole matches in this segment, in upstream order; never split across segments.
- `notice` (string): Interpretation, continuation, or recovery guidance.
- `pdbId` (string): Lowercase PDB ID.
- `shown` (integer): Whole matches in this segment.
- `sourceUrls` (array): Official API URLs this call read.
- `structure` (object): Complete upstream structure metadata on the first segment, the call without cursor; continuation segments omit it.
- `structures` (array): Every chain record of this segment’s matches, grouped by match in matches order.
- `totalCount` (number): Upstream total matching records.
- `truncated` (boolean): More segments remain.
- `url` (string): Canonical structure website URL.

### `interpro_scan_sequence` (~234 tokens)

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.

Input parameters:

- `cursor` (string): Opaque coverage.nextCursor from an earlier call with this same sequence, to read the next segment of precalculated matches.
- `sequence` (string, required): 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` (integer): Seconds to wait for a newly started job to finish before returning its jobId; 0 starts the job and returns at once.

Output parameters:

- `coverage` (object): Where this segment sits in the complete match list; present when finished.
- `error` (object): Present when the call failed. Absent on success.
- `interproVersion` (string): InterPro release of a finished InterProScan job.
- `interproscanVersion` (string): InterProScan version of a finished job.
- `jobId` (string): InterProScan job ID on the interproscan path; results stay retrievable for seven days.
- `length` (integer): Sequence length in residues.
- `matches` (array): 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 signatureLib…
- `md5` (string): Uppercase hex MD5 of the uppercased residues, the UniParc sequence digest.
- `notice` (string): Job, continuation, or empty-result guidance.
- `shown` (integer): Match records in this segment.
- `source` (string): Which path produced the result: precalculated matches from the InterPro Matches API, or an InterProScan 6 job run through the EBI Job Dispatcher.
- `sourceUrl` (string): Upstream endpoint that supplied this result.
- `status` (string): 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.
- `totalCount` (number): Match records in the complete result.
- `truncated` (boolean): More segments remain.

### `interpro_get_scan_result` (~182 tokens)

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.

Input parameters:

- `cursor` (string): Opaque coverage.nextCursor from an earlier result for this same jobId, to read the next segment.
- `jobId` (string, required): jobId returned by interpro_scan_sequence, such as iprscan6-R20261028-131532-0930-13189043-p1m.
- `waitSeconds` (integer): Seconds to wait for a pending job to finish; 0 checks its status once and returns.

Output parameters:

- `coverage` (object): Where this segment sits in the complete match list; present when finished.
- `error` (object): Present when the call failed. Absent on success.
- `interproVersion` (string): InterPro release of a finished InterProScan job.
- `interproscanVersion` (string): InterProScan version of a finished job.
- `jobId` (string): InterProScan job ID on the interproscan path; results stay retrievable for seven days.
- `length` (integer): Sequence length in residues.
- `matches` (array): 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 signatureLib…
- `md5` (string): Uppercase hex MD5 of the uppercased residues, the UniParc sequence digest.
- `notice` (string): Job, continuation, or empty-result guidance.
- `shown` (integer): Match records in this segment.
- `source` (string): Which path produced the result: precalculated matches from the InterPro Matches API, or an InterProScan 6 job run through the EBI Job Dispatcher.
- `sourceUrl` (string): Upstream endpoint that supplied this result.
- `status` (string): 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.
- `totalCount` (number): Match records in the complete result.
- `truncated` (boolean): More segments remain.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/cyanheads-interpro-mcp-server/interpro#diagnostics

## Score history

- 2026-11-05: 80
- 2026-11-04: 80
- 2026-11-03: 79
- 2026-11-02: 79
- 2026-11-01: 78
- 2026-10-31: 78
- 2026-10-30: 78
- 2026-10-29: 77
- 2026-10-28: 77
- 2026-10-27: 73
- 2026-10-26: 73
- 2026-10-25: 72
- 2026-10-24: 72

## Common questions

### What is the io.github.cyanheads/interpro-mcp-server server?

io.github.cyanheads/interpro-mcp-server is listed in the public MCP registry as io.github.cyanheads/interpro-mcp-server. Search InterPro entries, map domains onto proteins and PDB structures, and scan raw sequences. This page covers its hosted endpoint (https://interpro.caseyjhand.com/mcp).

### Is the io.github.cyanheads/interpro-mcp-server server safe to use?

io.github.cyanheads/interpro-mcp-server scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.cyanheads/interpro-mcp-server server expose?

io.github.cyanheads/interpro-mcp-server exposes 9 tools: interpro_list_reference, interpro_search_entries, interpro_get_entry, interpro_get_clan, interpro_get_protein_domains, and 4 more. Their descriptions and schemas cost roughly 2,049 tokens of context every time the server is loaded.

### Does the io.github.cyanheads/interpro-mcp-server server require authentication?

No. We connected to io.github.cyanheads/interpro-mcp-server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the io.github.cyanheads/interpro-mcp-server server still maintained?

io.github.cyanheads/interpro-mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://interpro.caseyjhand.com/mcp
- Repository: https://github.com/cyanheads/interpro-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/cyanheads-interpro-mcp-server/interpro.xml
- Changelog JSON feed: https://verifymcp.io/servers/cyanheads-interpro-mcp-server/interpro.json
- HTML version of this page: https://verifymcp.io/servers/cyanheads-interpro-mcp-server/interpro
