ETFIQ

Independent US ETF data: holdings, fees, overlap, returns, each with its source and date.

我该使用它吗

质量与安全性

A
描述质量
97%
模式完整度
72%
命名质量
81%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,392token 数(工具定义)
~481 B典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.87%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "etfiq": {
      "url": "https://mcp.etfiq.com"
    }
  }
}

远程端点

https://mcp.etfiq.comstreamable-http

它能做什么

工具清单

工具(14)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢etf_search(query, desk, limit)

Find US listed ETFs by ticker, fund name, or a word from the name. Use this FIRST when the user names a fund loosely, then etf_profile with the ticker it returns. Refuses rather than returning a near match.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "desk": {
      "type": "string"
    },
    "limit": {
      "type": "integer"
    }
  },
  "required": [
    "query"
  ]
}
🟢etf_profile(ticker)

Everything ETFIQ publishes about one fund: issuer, desk, and each figure with its source and as-of date, plus a one sentence verdict on how it did against what its own label promises.

输入模式

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string"
    }
  },
  "required": [
    "ticker"
  ]
}
🟢etf_holdings(ticker, top_n)

What a fund holds, by weight, and how old that is. ALWAYS read lag_days before presenting it: an issuer file read today and a filing from two months ago both come back here and are not the same answer.

输入模式

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string"
    },
    "top_n": {
      "type": "integer"
    }
  },
  "required": [
    "ticker"
  ]
}
🟢etf_theme(theme, limit)

Every US listed fund in a theme, largest first, with what each charges and how much of it is already in the S&P 500. USE THIS for any "what X ETFs are there" or "top X ETFs" question: it returns the whole published set rather than a sample.

输入模式

{
  "type": "object",
  "properties": {
    "theme": {
      "type": "string"
    },
    "limit": {
      "type": "integer"
    }
  },
  "required": [
    "theme"
  ]
}
🟢etf_themes

Every theme ETFIQ publishes and how many funds each holds. Call when unsure what a theme is called, then etf_theme.

输入模式

{
  "type": "object",
  "properties": {}
}
🟢etfiq_page(path)

Read ANY published ETFIQ page as text: a theme hub, a ranking, a comparison of two funds, an issuer, a methodology note, a dated study. Takes a path like /themes/cyber or a full etfiq.com URL. This reaches all 40,000 pages, including everything the typed tools above do not cover, and returns the page content rather than its navigation.

输入模式

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string"
    }
  },
  "required": [
    "path"
  ]
}
🟢etfiq_sections

What ETFIQ publishes, section by section, with a page count for each. Start here when the question is not about one fund: it names every section and what is in it.

输入模式

{
  "type": "object",
  "properties": {}
}
🟢etfiq_list(section, contains, limit)

The pages inside one section, optionally filtered to those whose address contains a word. Use after etfiq_sections to find a page, then etfiq_page to read it. The count returned is the whole matching set even when the list is capped.

输入模式

{
  "type": "object",
  "properties": {
    "section": {
      "type": "string"
    },
    "contains": {
      "type": "string"
    },
    "limit": {
      "type": "integer"
    }
  },
  "required": [
    "section"
  ]
}
🟢etf_screen(desk, issuer, max_fee_pct, min_assets_usd, limit)

Every fund matching some filters, largest first, each with its net assets and the source and date that figure came from. Use for "find me all X" questions rather than repeated searches. Fees are percentages, not basis points. Funds with no published size are set aside from a size filter and counted in no_size_figure rather than treated as small.

输入模式

{
  "type": "object",
  "properties": {
    "desk": {
      "type": "string"
    },
    "issuer": {
      "type": "string"
    },
    "max_fee_pct": {
      "type": "number"
    },
    "min_assets_usd": {
      "type": "number"
    },
    "limit": {
      "type": "integer"
    }
  }
}
🟢etf_overlap(a, b)

How much of their weight two funds hold in common, as ETFIQ published it on the comparison page for that pair. Use when asked whether two ETFs are the same thing, or whether owning both adds anything. Refuses rather than estimating when the pair is not compared or either holdings book is incomplete.

输入模式

{
  "type": "object",
  "properties": {
    "a": {
      "type": "string"
    },
    "b": {
      "type": "string"
    }
  },
  "required": [
    "a",
    "b"
  ]
}
🟢etfiq_as_of(date)

What ETFIQ published on a given date, from its frozen dated archive. Use when a question is about a past date, or when a figure needs to stay true after it is quoted: every other tool here answers about today and today moves overnight. Takes YYYY-MM-DD. Covers the pieces written that night, not an arbitrary per-fund figure on an arbitrary day.

输入模式

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string"
    }
  },
  "required": [
    "date"
  ]
}
🟢etf_holders(company, limit)

Which US listed ETFs hold a given company, ranked by how much of each fund it is. USE THIS for any "which ETFs hold X", "which fund holds the most X", or "how do I get exposure to X" question, where X is a company rather than a fund, and for "which bond ETFs hold X's debt". Takes a company name or its ticker. Returns every fund holding its shares with the weight its issuer published and the date that book was filed, and separately every fund holding its bonds or other debt. Covers 31,019 companies.

输入模式

{
  "type": "object",
  "properties": {
    "company": {
      "type": "string"
    },
    "limit": {
      "type": "integer"
    }
  },
  "required": [
    "company"
  ]
}
🟢etf_rankings(slug, limit)

The ranked lists ETFIQ publishes, or one of them. Each ranks ONE published figure inside a stated set: the cheapest funds in a theme, the leveraged funds furthest from their stated multiple, the buffer funds closest to their cap. Call with no argument for the list.

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "limit": {
      "type": "integer"
    }
  }
}
🟢build_portfolio(band, include, feeCeiling, funds, criterion)

Builds a custom portfolio of US listed ETFs from construction choices about the PORTFOLIO and shows the rule it applied (ETFIQ custom construction rule, version 1): stocks at the chosen band's point, international stocks 40% of the stocks outside themes, themes 10% of stocks in equal parts, commodities and alternatives 5% each taken from bonds, US bonds the rest; in each sleeve the cheapest (or largest) funds that file N-PORT, hold at least $100 million and have three years of prices, each fund's fee with its filing date. BEFORE CALLING, ask the user in ONE short series for any missing choice: the band, described by stock share (conservative: more than 15% and up to 30% stocks; moderately-conservative: more than 30% and up to 50%; moderate: more than 50% and up to 70%; moderately-aggressive: more than 70% and up to 85%; aggressive: more than 85%); whether to include commodities, alternatives, international stocks and themes (and which themes, at most five, by the ids etf_themes lists); an optional fee ceiling in percent; the number of funds, 2 to 12; and cheapest or largest (default cheapest). NEVER ask about, and never pass, the person's age, income, savings, net worth, goals, time horizon, tax situation, risk tolerance, employment or family, and never turn what someone says about themselves into a band: the band is the user's choice about the portfolio's stock share. If asked whether a portfolio suits someone, or whether to buy or sell it, say that ETFIQ does not answer that and give the not-advice line. Every response carries the not-advice line in not_advice: show it with the portfolio.

输入模式

{
  "type": "object",
  "properties": {
    "band": {
      "type": "string",
      "enum": [
        "conservative",
        "moderately-conservative",
        "moderate",
        "moderately-aggressive",
        "aggressive"
      ],
      "description": "The stock-share band the portfolio should sit in."
    },
    "include": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "commodities",
        "alternatives",
        "international",
        "themes"
      ],
      "properties": {
        "commodities": {
          "type": "boolean"
        },
        "alternatives": {
          "type": "boolean"
        },
        "international": {
          "type": "boolean"
        },
        "themes": {
          "type": "boolean"
        },
        "themeIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "maxItems": 5,
          "uniqueItems": true,
          "description": "Theme ids, only when themes is true."
        }
      }
    },
    "feeCeiling": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 3,
      "description": "The most any one fund may charge, in percent a year (0.25 is 0.25%)."
    },
    "funds": {
      "type": "integer",
      "minimum": 2,
      "maximum": 12
    },
    "criterion": {
      "type": "string",
      "enum": [
        "cheapest",
        "largest"
      ],
      "default": "cheapest"
    }
  },
  "required": [
    "band",
    "include",
    "funds"
  ],
  "additionalProperties": false
}

推荐提示词

find_specific
Find [specific item] using ETFIQ
预期工具: etf_search
search_research
Search for information about [topic] using ETFIQ
预期工具: etf_search
browse_collection
Show me the [collection] from ETFIQ
预期工具: etfiq_list
list_items
List all [items] available in ETFIQ
预期工具: etfiq_list

社区

评价此服务器

证据

最近观测

已验证未记录版本14 个工具
已验证未记录版本13 个工具
已验证未记录版本13 个工具