# io.github.lordbasilaiassistant-sudo/thryx-portfolio (npm · @thryx/portfolio-mcp-server)

Read-only MCP server for the THRYX onchain portfolio (14 contracts on Base mainnet).

- Trust score: 64/100 (medium)
- Change this week: +24
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@thryx/portfolio-mcp-server`: 64/100 (this document), [markdown](https://verifymcp.io/servers/lordbasilaiassistant-sudo-thryx-portfolio/thryx-portfolio-mcp-server.md), [page](https://verifymcp.io/servers/lordbasilaiassistant-sudo-thryx-portfolio/thryx-portfolio-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `@thryx/portfolio-mcp-server`
- Version: `1.0.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (104 of 108), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (104 of 108), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 91 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 1268 tokens (~90/item across 14 items; 14 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 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.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add lordbasilaiassistant-sudo-thryx-portfolio -- npx -y @thryx/portfolio-mcp-server
```

### Codex

```bash
codex mcp add lordbasilaiassistant-sudo-thryx-portfolio -- npx -y @thryx/portfolio-mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "lordbasilaiassistant-sudo-thryx-portfolio": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@thryx/portfolio-mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add lordbasilaiassistant-sudo-thryx-portfolio --command npx --arg -y --arg @thryx/portfolio-mcp-server
```

### Hermes

```yaml
mcp_servers:
  lordbasilaiassistant-sudo-thryx-portfolio:
    command: "npx"
    args: ["-y", "@thryx/portfolio-mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "lordbasilaiassistant-sudo-thryx-portfolio": {
      "command": "npx",
      "args": [
        "-y",
        "@thryx/portfolio-mcp-server"
      ]
    }
  }
}
```

## 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-08-03 (score 64, +1)

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

### 2026-08-02 (score 63, +63)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 0, −16)

- [functional regression] Tool coverage: 100 → unverified

### 2026-07-31 (score 16, −24)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 40, +22)

- [functional improvement] Tool coverage: unverified → 100

### 2026-07-28 (score 18, −22)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 40)

First indexed and scored.

## MCP tools (14)

### `thryx_list_contracts` (~134 tokens)

List every contract in the THRYX onchain portfolio (DeadManSwitch, KeeperBountyLab keeper bots, Onchain Primitives Lab — StealthAddressRegistry/EIP-5564, AddressTaggingMarket, TimeCapsule, SlashablePromiseVault, GroupBountyPool, AtomicSwapHTLC, ConditionalTokenDrop). Returns name, address, category, repo, and explorer link for each. Pulled live from the canonical addresses.json so it stays in sync with new deployments.

Input parameters:

- `category` (string): Optional filter: deadManSwitch, keeperBountyLab, onchainPrimitives.

### `thryx_get_contract` (~94 tokens)

Look up a single contract by name or address. Returns address, category, summary, repo URL, explorer URL, and the read-only ABI (view functions) the MCP server knows about. Use this before calling thryx_call_contract to discover what view functions are available.

Input parameters:

- `query` (string, required): Contract name (e.g. 'DeadManSwitch', 'TimeCapsule') or 0x address.

### `thryx_list_tokens` (~81 tokens)

List every ERC-20 token launched by the THRYX treasury (Clanker V4 LP-fee earners on Base mainnet — currently Aletheia/ALETH, Mnemosyne/MNEM, Huginn/HUGIN, Custos/CUSTOS). Returns name, symbol, address, platform, and clanker.world URL.

### `thryx_get_token` (~86 tokens)

Look up a single THRYX-launched token by symbol, name, or address. Returns address, platform, and clanker.world link (where LP fees are claimable for the token's deployer).

Input parameters:

- `query` (string, required): Token symbol (e.g. 'ALETH'), name (e.g. 'Aletheia'), or 0x address.

### `thryx_portfolio_summary` (~60 tokens)

High-level summary of the entire THRYX onchain portfolio: contract count, token count, treasury address, chain info, and links to the canonical addresses.json and homepage. Useful as a first call to understand the scope before drilling in.

### `thryx_dms_get_switch` (~88 tokens)

Read a single DeadManSwitch by ID. Returns depositor, beneficiary, locked amount (wei), ping interval, last-ping timestamp, claimed flag, computed deadline, and isAlive boolean. Use this to check whether a switch is healthy or eligible for triggering by anyone (open bounty after deadline).

Input parameters:

- `switch_id` (integer, required): The switch ID (0-indexed).

### `thryx_dms_total_switches` (~38 tokens)

Returns the total number of DeadManSwitch positions ever created. Useful for iterating IDs 0..N-1.

### `thryx_dms_switches_by` (~78 tokens)

List DeadManSwitch IDs owned by a depositor address OR designated to a beneficiary address. Choose role='depositor' or role='beneficiary'.

Input parameters:

- `address` (string, required): 0x address to query.
- `role` (string, required): 'depositor' (creator) or 'beneficiary' (recipient).

### `thryx_attestations_for` (~88 tokens)

Look up the on-chain reputation/attestations on an Ethereum address from the THRYX AddressTaggingMarket. Returns the list of attestation IDs and the current 'top label' (highest-stake attestation) for that address. Powerful for AI agents doing safety triage on counterparties.

Input parameters:

- `address` (string, required): Subject address to query attestations on.

### `thryx_attestations_total` (~29 tokens)

Returns the total number of attestations ever made through the AddressTaggingMarket.

### `thryx_stealth_meta_address` (~123 tokens)

Fetch the EIP-5564 / EIP-6538 stealth meta-address registered by an address for a given scheme ID (typically schemeId=1 for the SECP256k1 scheme). Returns the raw bytes and a hasMetaAddress boolean. Lets agents check if a recipient supports stealth-address payments before constructing one.

Input parameters:

- `registrant` (string, required): Address whose stealth meta-address you want.
- `scheme_id` (integer): Stealth address scheme ID (default 1 = SECP256k1 per EIP-5564).

### `thryx_capsule_status` (~107 tokens)

Check whether a TimeCapsule is unlocked yet, and return the total number of capsules created. Optionally supply a creator/recipient address to list capsule IDs owned by that party.

Input parameters:

- `address` (string): Optional creator or recipient address — listed by role param.
- `capsule_id` (integer): Optional capsule ID — if provided, returns isUnlocked for that capsule.
- `role` (string): Required if 'address' is set — 'creator' or 'recipient'.

### `thryx_token_supply` (~119 tokens)

ERC-20 read for any THRYX-launched token (Aletheia/ALETH, Mnemosyne/MNEM, Huginn/HUGIN, Custos/CUSTOS) or any other Base ERC-20. Returns name, symbol, decimals, total supply (raw and formatted), and optionally a balance for an address.

Input parameters:

- `holder` (string): Optional holder address — returns its balance.
- `token` (string, required): Token address OR THRYX symbol (ALETH/MNEM/HUGIN/CUSTOS).

### `thryx_call_contract` (~143 tokens)

Generic read-only call against any THRYX portfolio contract. Pass the contract name (e.g. 'GroupBountyPool') or 0x address, the view function name, and JSON-encoded args. Use thryx_get_contract to discover available functions. Refuses non-view functions — this server cannot send transactions.

Input parameters:

- `args` (array): Function arguments as a JSON array. Empty if none.
- `contract` (string, required): Contract name (e.g. 'EnsAutoRenewer') or 0x address of any THRYX contract.
- `function_name` (string, required): View function to call (e.g. 'totalJobs').

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/lordbasilaiassistant-sudo-thryx-portfolio/thryx-portfolio-mcp-server#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 63
- 2026-08-01: 0
- 2026-07-31: 16
- 2026-07-30: 40
- 2026-07-28: 18
- 2026-07-27: 40

## Links

- npm package: https://www.npmjs.com/package/@thryx/portfolio-mcp-server
- Socket report: https://socket.dev/npm/package/@thryx/portfolio-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/lordbasilaiassistant-sudo-thryx-portfolio/thryx-portfolio-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/lordbasilaiassistant-sudo-thryx-portfolio/thryx-portfolio-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/lordbasilaiassistant-sudo-thryx-portfolio/thryx-portfolio-mcp-server
