# io.github.ABWerks/pequod-mcp (pypi · pequod-mcp)

Complete US ETF holdings from SEC N-PORT filings + ticker/CUSIP/FIGI crosswalk. Primary source.

- Trust score: 67/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-19

## Components

- pypi · `pequod-mcp`: 67/100 (this document), [markdown](https://verifymcp.io/servers/abwerks-pequod-mcp/pequod-mcp.md), [page](https://verifymcp.io/servers/abwerks-pequod-mcp/pequod-mcp)

## Channel facts

- Registry: `pypi`
- Package: `pequod-mcp`
- Version: `0.2.2`
- 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-19.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it.
  - 1 of 19 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: no license is declared.
  - Actively maintained (last published 3 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 79/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 665 tokens (~133/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **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.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add abwerks-pequod-mcp -- uvx pequod-mcp
```

### Codex

```bash
codex mcp add abwerks-pequod-mcp -- uvx pequod-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "abwerks-pequod-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "pequod-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add abwerks-pequod-mcp --command uvx --arg pequod-mcp
```

### Hermes

```yaml
mcp_servers:
  abwerks-pequod-mcp:
    command: "uvx"
    args: ["pequod-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "abwerks-pequod-mcp": {
      "command": "uvx",
      "args": [
        "pequod-mcp"
      ]
    }
  }
}
```

## 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-15 (score 67)

First indexed and scored.

## MCP tools (5)

### `lookup_cik` (~145 tokens)

Look up a ticker's SEC Central Index Key (CIK) and entity metadata.

This is the first step before calling get_etf_holdings.  The CIK is
the SEC's unique identifier for every filing entity.  The submissions
endpoint also returns the entity name, SIC code, tickers, exchanges,
fiscal year end, and addresses.

The ticker→CIK mapping comes from SEC's company_tickers.json (covers
10,000+ US tickers), cached on disk with a 24-hour freshness window.

Input parameters:

- `ticker` (string, required): Stock or ETF ticker symbol (e.g. 'SCHD', 'QQQ', 'AAPL').

### `resolve_ticker` (~120 tokens)

Resolve a raw ticker symbol to its Yahoo-convention equivalent.

Applies exchange suffix mapping and known manual fixes as a pure
string transformation (no Yahoo network calls), then verifies the
mapping against SEC company_tickers.json and/or OpenFIGI.

Input parameters:

- `exchange_code` (string): Optional exchange code — MIC format like 'XASX'            or short format like 'AU', 'LN', 'SW', 'JP'.
- `symbol` (string, required): Raw ticker symbol (e.g. 'AAPL', 'SCMN', 'BHP').

### `resolve_cusip` (~155 tokens)

Resolve a CUSIP (or SEDOL) identifier to a Yahoo-convention ticker symbol.

Queries OpenFIGI (one batched request trying both ID_CUSIP and
ID_SEDOL), maps the result to a Yahoo-convention symbol via pure
suffix mapping, and verifies the mapping against SEC
company_tickers.json name/ticker agreement.  A gross name mismatch
between OpenFIGI and SEC vetoes the mapping.

Note: the CUSIP is accepted as INPUT only — tool outputs carry
ticker/ISIN/FIGI identifiers, never CUSIPs.

Input parameters:

- `cusip` (string, required): A 9-character CUSIP (or 7-character SEDOL) identifier.

### `resolve_figi` (~89 tokens)

Resolve a Bloomberg FIGI (Financial Instrument Global Identifier) to a
Yahoo-convention ticker symbol.

Queries OpenFIGI, maps the exchange code to a Yahoo suffix (pure
string mapping), and verifies the mapping against SEC
company_tickers.json name/ticker agreement.

Input parameters:

- `figi` (string, required): A Bloomberg FIGI identifier (e.g. 'BBG000BVRVT1').

### `get_etf_holdings` (~156 tokens)

Get the complete holdings of any US-registered ETF via SEC EDGAR.

Uses Form N-PORT filings (filed monthly by all US ETFs) as the single,
consistent primary source.  Each holding includes name, ticker, ISIN,
FIGI, LEI, shares, USD value, percent of net assets, country, and
currency.  (CUSIPs are deliberately not included in output.)

Input parameters:

- `cik` (string): Optional 10-digit SEC CIK (from lookup_cik).  Skips the  ticker→CIK lookup if provided.
- `ticker` (string, required): The ETF ticker symbol (e.g. 'QQQ', 'SPY', 'SCHD', 'IHDG').

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/abwerks-pequod-mcp/pequod-mcp#diagnostics

## Score history

- 2026-08-19: 67
- 2026-08-18: 67
- 2026-08-17: 67
- 2026-08-16: 67
- 2026-08-15: 67

## Links

- PyPI project: https://pypi.org/project/pequod-mcp/
- Socket report: https://socket.dev/pypi/package/pequod-mcp
- Repository: https://github.com/ABWerks/pequod-mcp
- Changelog RSS feed: https://verifymcp.io/servers/abwerks-pequod-mcp/pequod-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/abwerks-pequod-mcp/pequod-mcp.json
- HTML version of this page: https://verifymcp.io/servers/abwerks-pequod-mcp/pequod-mcp
