Resources
+1
- + interpro-guide
io.github.cyanheads/interpro-mcp-server
6 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.
https://raw.githubusercontent.com/cyanheads/interpro-mcp-server/HEAD/AGENTS.md
− **Version:** 0.1.1− **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.15`− **MCP SDK:** `@modelcontextprotocol/server` ^2.3.1− Abridged from `src/mcp-server/tools/definitions/interpro-get-entry.tool.ts`. All six tools share this shape: a service call through `service.begin(ctx)`, `ctx.enrich` for notices, a per-tool `errors` contract, and the shared `formatInterpro` formatter.− There are no resources or prompts and no server-specific environment variables: the InterPro API is keyless and every limit is fixed in `src/services/interpro/`.− tools: [/* six definitions */],− setup() { initInterproService(); },− http-adapter.ts # node:https HTTP/1.1 transport with 204 handling− interpro-[name].tool.ts # Six tool definitions− Skills are modular instructions in `framework-skills/` at the project root. Read them directly when a task matches — e.g., `framework-skills/add-tool/SKILL.md` when adding a tool. `bun run list-skills` prints the full registry. The directory is deliberately not `skills/`: Claude Code and Codex auto-load a plugin's root `skills/`, so a server that ships `.claude-plugin/` or `.codex-plugin/` would hand these development skills to every agent that installs it. Keep `skills/` free for skills meant f− **Agent skill directory:** Copy skills into the directory your agent discovers (Claude Code: `.claude/skills/`, others: equivalent). Skills then load as context without referencing `framework-skills/` paths. After framework updates, run the `maintenance` skill — Phase B re-syncs the agent directory.− | `bun run lint:packaging` | Packaging surface checks — `server.json`/`manifest.json` env-var parity (run by devcheck) |− **Waived `devcheck` warnings.** `bun run devcheck` emits six `format-parity-depth-limit` warnings, for the `…fragments[].start`, `…fragments[].end`, and `…fragments[].dc-status` output fields of `interpro_find_proteins_by_domain` and `interpro_get_protein_domains`. The schema is finite but deeper than the framework's depth-8 parity walker, and tests prove both surfaces render those fields. The owner waived exactly these six, pending [cyanheads/mcp-ts-core#531](https://github.com/cyanheads/mcp-ts− `npm run bundle` produces a `.mcpb` extension bundle for one-click install in Claude Desktop. The pack step is followed by `scripts/clean-mcpb.ts`, which prunes dev dependencies (`mcpb clean`) and strips two classes of `node_modules/**` content that root-anchored `.mcpbignore` patterns cannot reach: dependency-shipped agent docs (`framework-skills/`, `skills/`, `.claude/`, `.agents/`, `SKILL.md`) and platform-specific native bindings, which would otherwise lock the bundle to the platform it was + **Version:** 0.2.0+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.18`+ **MCP SDK:** `@modelcontextprotocol/server` ^2.4.0+ Abridged from `src/mcp-server/tools/definitions/interpro-get-entry.tool.ts`. All nine tools share this shape: a service call through `service.begin(ctx)`, `ctx.enrich` for notices, a per-tool `errors` contract, and the shared `formatInterpro` formatter.+ There are no resources or prompts. The InterPro API is keyless; the one server-specific environment variable, optional `INTERPRO_SCAN_EMAIL` (parsed in `src/config/server-config.ts`), is the contact address the EBI Job Dispatcher requires for InterProScan submissions. Unset, `interpro_scan_sequence` still serves precalculated matches and fails other sequences as `scan_not_configured`; the hosted instance leaves it unset. The scan tools (`interpro_scan_sequence`, `interpro_get_scan_result`) run t+ tools: [/* nine definitions */],+ skills: 'skills',+ setup() {+ initInterproService();+ initSequenceScanService(getServerConfig().scanEmail);+ },+ config/+ server-config.ts # INTERPRO_SCAN_EMAIL parsing (lazy, validated at startup)+ http-adapter.ts # node:https HTTP/1.1 transport with 204 handling; also carries the scan tools' Matches API and Job Dispatcher calls+ structure-schemas.ts # PDB ID and chain validation, structure and chain-record schemas+ description-text.ts # Readable HTML fragment projection for entry detail+ sequence-scan/+ sequence.ts # Sequence parsing and the UniParc MD5 digest+ scan-schemas.ts # Matches API, Job Dispatcher, and match-record schemas+ sequence-scan-service.ts # Precalculated lookup, job submission and polling, in-flight cap+ scan-output.ts # Shared scan output schema and match segmentation+ interpro-[name].tool.ts # Nine tool definitions+ Two skill trees live at the project root, written for different readers:+ | Tree | For | Written by |+ |:-----|:----|:-----------|+ | `framework-skills/` | The agent developing this server — framework skills (`metadata.audience: external`) plus any development-time skills of the server's own | `init` and the `maintenance` sync (framework skills); you (your own) |+ | `skills/` | The agents that install the server and call its tools — tool chains, identifier sources, gates | You, deliberately, with the `add-skill` skill. Absent by default; usually none is needed |+ Development skills are modular instructions. Read them directly when a task matches — e.g., `framework-skills/add-tool/SKILL.md` when adding a tool. `bun run list-skills` prints the full registry. Their directory is deliberately not `skills/`: Claude Code and Codex auto-load a plugin's root `skills/`, so a server that ships `.claude-plugin/` or `.codex-plugin/` would hand them to every agent that installs it.+ A published skill in root `skills/` reaches plugin installs and the `.mcpb` bundle as-is, ships in the npm package and the Docker image, and reaches MCP clients when the server opts in with `createApp({ skills: 'skills' })`. `lint:packaging` validates the tree. This server publishes one, `skills/interpro-guide/SKILL.md` (identifier chains, gates, and chain/author/UniProt numbering), served with `skills: 'skills'`.+ **Agent skill directory:** Copy `framework-skills/` into the directory your agent discovers (Claude Code: `.claude/skills/`, others: equivalent). Skills then load as context without referencing `framework-skills/` paths. After framework updates, run the `maintenance` skill — Phase B re-syncs the agent directory.+ | `add-skill` | Author a skill the server publishes in root `skills/` for the agents that use it — when one earns its place, structure, validation, delivery |+ | `bun run lint:packaging` | Packaging surface checks — `server.json`/`manifest.json` env-var parity, `.mcpbignore` coverage, plugin manifests, the published `skills/` tree (run by devcheck) |+ **Waived `devcheck` warnings.** The owner waived `format-parity-depth-limit` for the `…fragments[].start`, `…fragments[].end`, and `…fragments[].dc-status` output fields of `interpro_find_proteins_by_domain` and `interpro_get_protein_domains`, plus discovery's containing path `proteins[].entries[].entry_protein_locations[].fragments[]`. The architecture union moves discovery's three diagnostics to that array, so the current schema emits four warnings. These finite nested records exceed the frame+ `npm run bundle` produces a `.mcpb` extension bundle for one-click install in Claude Desktop. `mcpb pack` reads `.mcpbignore`, not `.gitignore`, so every root path the bundle must not ship — source, tests, docs, caches, logs, agent docs, plugin manifests, gitignored local files — needs a root-anchored line there (`/docs/`, never `docs/`, which also strips `node_modules/*/docs/`); `lint:packaging` names each missing or unanchored line. Root `skills/` ships on purpose. The pack step is followed by+ - [ ] `plugin.json` + `mcp.json` (Agent Plugins 1.0.0 — read by Codex, Cursor, GitHub Copilot, VS Code, Kiro) populated — `plugin.json` `name` = the unscoped repo name (lowercase `a-z`, `0-9`, `-`, `.` only); `version`, `description`, `author`, `homepage`, `repository`, `license`, `keywords` from `package.json`; no other top-level field, `extensions` included. `mcp.json` holds one `"type": "stdio"` entry keyed by the unscoped name, `npx -y <full package name>`, and the same fixed `env` as `.code+ - [ ] Any new root dev path has a root-anchored line in `.mcpbignore`; `bun run bundle` and `lint:packaging` pass+ - [ ] If the server publishes a skill in root `skills/`: `lint:packaging` passes, and `field-test` verified every gate and identifier claim in it against live tool behavior
We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect