MCP.so
登录

Sugra API MCP Server

@Sugra API

基本信息

传输方式

streamable-http

认证方式

OAuth

分类

金融与商务

作者

Sugra API

关于 Sugra API MCP Server

Sugra API MCP 服务器是 Sugra API 的托管 MCP 端点。Sugra API 是一个整合了 195 个一手数据源、36 个领域的数据 API。智能体可以搜索捆绑的端点目录,按 ID 调用任意操作,将名称与制裁名单比对,按 LEI 或 VAT 查询实体,并获取组合快照和时间序列。可通过 OAuth 登录或发送 API 密钥。

连接信息

https://mcp.sugra.ai/mcp

接入方式

claude mcp add sugra-api --transport http https://mcp.sugra.ai/mcp

Sugra API MCP Server 工具

11

Screen a person or organization name against the Sugra sanctions corpus. Returns a SCREENING SIGNAL, not a compliance determination. Sugra is a technology provider, not a sanctions authority or consumer reporting agency. PEP and adverse-media coverage is supplementary and non-comprehensive - a `clear` result is not proof of absence, and a `hit` is a candidate match to review, not a finding. Output is COMPACT to protect the agent context budget: `{status, matches:[{name, score, list, type}], disclaimer}`. The verdict `status` is one of `clear`, `review`, or `hit`. The heavy raw fields (match rationale, source ids, publish dates) are dropped; use the Sugra API directly when the full screening envelope is needed. Args: name: The person or organization name to screen (required). country: Optional ISO 3166-1 alpha-2 country to narrow the match. dob: Optional date of birth (YYYY-MM-DD) for a person. nationality: Optional nationality to narrow the match.

Resolve an entity by identifier and return its composed KYB envelope. `anchor` is `lei` (Legal Entity Identifier, resolved via the GLEIF registry) or `vat` (EU VAT number, validated via the EU VIES service). The result weaves identity, a sanctions screening signal, and - on request - ownership and adverse-media slices. The screening verdict is a SCREENING SIGNAL, not a compliance determination, and any PEP / adverse-media content is supplementary and non-comprehensive. The `disclaimer` field carries this and is always present. Output is COMPACT by default to protect the agent context budget: `{entity:{name, anchor, value, status, country}, screening:{status, top_matches:[...3], hit_count}, ids:{...}, disclaimer}`. Pass `include` to opt INTO fuller per-slice detail, e.g. `include=["ownership","adverse_media"]` adds those slices in full form. On a bad anchor or an API error this returns a clean `{error, detail}` dict rather than raising, so the agent can branch on `result.get("error")`. Args: anchor: Identifier type, one of `lei` or `vat`. value: The identifier value (the 20-char LEI code or the VAT number). include: Optional list of fuller slices to add, e.g. `["ownership", "adverse_media"]`. Omit for the compact default.

Search the bundled Sugra endpoint catalog by natural-language query. Use this to pick an operation_id. It does not fetch data. Typical loop: 1. search_endpoints(query) -> ranked hits with required_parameters 2. describe_endpoint(operation_id) -> params, request_body_schema, agent_hints 3. call_endpoint(operation_id, params=..., body=...) or fetch_data(query, params=...) Filter with toolset or source only after list_toolsets / list_sources; a misspelled filter is an error, not a silent empty result. Examples: - search_endpoints("US CPI inflation") - search_endpoints("AAPL price", toolset="markets") - search_endpoints("container ship AIS", toolset="network")

Describe one Sugra API endpoint by operation_id. Includes agent_hints (duration_class fast/slow/heavy, max_concurrency, bulk billing) so you can budget timeouts and parallelism before calling. POST endpoints with a JSON body also carry request_body_schema (the resolved JSON schema) - construct the `body` argument from it instead of guessing key names. Call this after search_endpoints and before call_endpoint when you need the exact parameter names and examples.

Call a Sugra API endpoint by operation_id from the bundled catalog. Plan calls with describe_endpoint's agent_hints: duration_class "fast" usually responds in under ~2s, "slow" usually 1-5s and occasionally 15s+ on a cold upstream, "heavy" can exceed the gateway timeout - keep parallel calls within max_concurrency and prefer small batches. Bulk endpoints bill 1 request credit per body item. Failures return structured errors {error, reason, status_code, elapsed_ms, retry_hint}; after "upstream_timeout" a single retry often succeeds because the aborted attempt warms upstream caches.

List catalog groups with endpoint counts and short descriptions. Use the group names as the toolset filter on search_endpoints. This does not call the Sugra API; it reads the bundled catalog.

One-step fetch: find the best Sugra endpoint for the query and call it. Combines search_endpoints + call_endpoint into a single round trip. Use this when you want data without manually picking an operation_id. The full search_endpoints + describe_endpoint + call_endpoint dance is still available when you need explicit control, but for most natural-language queries this tool is enough. Behavior: 1. Search the bundled catalog for the query. Top match wins. 2. If the matched endpoint has required parameters and they are all provided in `params`, call it and return the response. 3. If required parameters are missing, return the candidate endpoints and the missing-params list so the LLM can retry with the correct `params` dict on the next call. 4. If the query names a country and the match takes a `country` or `countries` param that `params` leaves unset, return needs_params for it with query_countries (ISO2) instead of running the match without that filter. Examples: - `fetch_data("US CPI inflation", params={"series_id": "CPIAUCSL"})` runs fred_series_series_id (/api/v1/fred/series/CPIAUCSL) and returns observations. - `fetch_data("Bitcoin price")` runs onchain_bitcoin_price, which takes no params. - `fetch_data("Latest financial news")` runs news_latest, which has no required params. Only the top match runs, and a param it does not declare returns error unknown_parameters. For one coin's price, name the operation: `call_endpoint("crypto_coin_id_price", params={"coin_id": "bitcoin"})`.

List source families in the bundled catalog with endpoint counts. Use the family names as the source filter on search_endpoints. This does not call the Sugra API.

Resolve free text to a canonical market or macro entity. Turns a ticker, company name, macro indicator, coin, or currency pair into the agent plane's ``{namespace, ids}`` entity for use with get_snapshot and get_timeseries. A cross-namespace collision (e.g. a ticker that is both an equity and a coin) returns status "ambiguous" with ranked candidates and NEVER silently picks one; pass type_hint (e.g. "equity", "etf", "coin") to narrow the universe. Crypto aliases resolve too (e.g. "bitcoin" -> the BTC coin entity). Status "low_confidence" means the best match cleared resolution but scored weakly - verify the returned entity before building on it, or re-query with a more specific name or type_hint. For compliance KYB lookups by LEI/VAT or sanctions screening use sugra_entity_lookup / sugra_entity_screen instead - this tool is for market-data entities. Args: query: Free-form text - ticker, company, indicator, coin, or pair. type_hint: Optional namespace hint narrowing resolution.

Composed current view of an entity via a named recipe. Executes a fixed server-side recipe (company_snapshot, etf_snapshot, quote_snapshot, macro_indicator_snapshot, macro_calendar, earnings_snapshot, debt_snapshot) and returns one envelope with freshness, provenance, per-component coverage, and billing. Composed calls charge the recipe's fixed cost (1-2 units) from the daily quota. status "partial" means an optional component was unavailable - the present components are still trustworthy; honor the freshness block (stale=true means the data aged past its budget); for macro_calendar, entity is accepted but does not filter the calendar. Args: recipe: Recipe name from the fixed manifest. entity: Entity dict from resolve_entity ({"namespace": ..., "ids": ...}).

Bounded timeseries for an entity: price, macro_series, etf_flows or etf_monthly_flows. Returns points oldest-first with an explicit downsampling flag when the raw series exceeded max_points. Times are UTC. Costs 1 unit per call. Read the step from ``served_granularity``, not ``granularity``. The latter echoes the request; the former is the step the source built the points at, and the two can differ (a long price range can come back as monthly bars under a "1d" request). It reads ``mixed`` when the points do not share one step, ``unknown`` when the source does not say, and null when no point came back. It describes how each point was built, not how far apart the returned points are: a thinned daily series still reads ``1d``, and ``downsampled`` is what says points were dropped. The two ETF flow metrics answer different questions and are not interchangeable. ``etf_flows`` is an ESTIMATE at filing cadence: one point per SEC filing refresh, so ``t`` is a filing date and even a wide window yields a handful of points. ``etf_monthly_flows`` is the fund's own creations and redemptions from its NPORT-P filing, so ``t`` is a calendar month (``YYYY-MM``) and each point carries the three filed components - sales, reinvestment, redemption - beside the net. Two things to read before quoting etf_monthly_flows. NPORT-P is filed per SERIES, so for a fund with more than one share class the figures cover every class and the payload says so in ``multi_class_series``; where the class count is unknown it says ``class_scope`` instead of staying silent. And a fund that files no NPORT-P at all, such as a commodity trust, is not an error: the call returns status ``partial`` with an empty point list and a ``reason``. Args: metric: One of price / macro_series / etf_flows / etf_monthly_flows. entity: Entity dict from resolve_entity ({"namespace": ..., "ids": ...}). granularity: Requested point granularity (default "1d"). max_points: Hard cap on returned points (default 500).

概览

什么是 Sugra API MCP Server?

Sugra API MCP Server 是 Sugra API 官方托管的 MCP 端点,AI 智能体可以通过它发现并调用 1,600 多个数据端点,涵盖金融、宏观、实体(KYB 与制裁)、网络、新闻、地球与研究数据。

Sugra API 将来自 195 个一手数据源的 36 个领域整合为统一的响应格式,面向 AI 智能体、金融科技应用、研究团队和内部看板。托管的 Sugra MCP 服务器已上架 Anthropic 的 Connectors Directory 和 OpenAI Plugins Directory;PyPI 上还有本地 stdio 包 sugra-api-mcp。

如何使用 Sugra API MCP Server?

你需要一个 Sugra 账号(Free 计划无需信用卡)。发现类请求是公开的,但调用工具需要认证:可以在浏览器中通过 OAuth 登录,或用 Sugra API 密钥发送 Authorization: Bearer。MCP 调用与直接调用 API 共用同一个每日请求配额。

MCP 端点为 https://mcp.sugra.ai/mcp(服务器名称 sugra-api)。

Claude Code

使用 OAuth(运行 /mcp 登录):

claude mcp add --transport http sugra https://mcp.sugra.ai/mcp

使用 API 密钥(与 Sugra 文档一致):

claude mcp add --transport http sugra https://mcp.sugra.ai/mcp --header "Authorization: Bearer $SUGRA_API_KEY"

如果 Claude Code 已用 claude.ai 账号登录,并且已从 Connectors Directory 连接 Sugra,它会直接出现在 /mcp 中。

Claude Desktop 与 claude.ai

从 Connectors Directory 添加 Sugra,或选择 Customize → Connectors → Add custom connector,粘贴 URL 并用 Sugra 账号登录。

Cursor

{
  "mcpServers": {
    "sugra": {
      "url": "https://mcp.sugra.ai/mcp"
    }
  }
}

VS Code

{
  "servers": {
    "sugra": {
      "type": "http",
      "url": "https://mcp.sugra.ai/mcp"
    }
  }
}

对于 Codex CLI,文档给出的命令是 codex mcp add sugra --url https://mcp.sugra.ai/mcp --bearer-token-env-var SUGRA_API_KEY。

Sugra API MCP Server 的主要功能

  • 覆盖面广:股票、期权、加密货币、大宗商品、外汇和基本面;央行、统计机构和贸易;KYB、制裁、PEP 信号以及 LEI/VAT 解析;IP、ASN、BGP、RPKI 和 Tor;精选新闻与 GDELT;天气、气候、能源和卫星数据;arXiv、NBER 和 Crossref。
  • 基于目录的工具:智能体先在本地捆绑的目录中搜索,再按 operation_id 调用端点,一个服务器即可覆盖整个 API。
  • 智能体提示:端点描述包含耗时等级、并发上限和批量计费,方便智能体规划超时和并行调用。
  • 托管专属的组合工具:一次调用即可完成实体解析、快照和时间序列。
  • 合规意识的筛查:制裁结果以筛查信号(clear、review 或 hit)加免责声明的形式返回,而不是合规结论。
  • 所有计划数据相同:Free($0,每天 50 次请求)、Personal($9/月,每天 1,000 次查询)、Dev($25/月,每天 5,000 次)和 Pro($59/月,每天 50,000 次),不做功能限制。

Sugra API MCP Server 工具

我们的探测返回了 11 个工具。

  • 发现(读取捆绑目录,不调用 API):search_endpoints、describe_endpoint、list_toolsets 和 list_sources。describe_endpoint 返回参数、JSON 请求体 POST 端点的 request_body_schema 以及 agent_hints。
  • 数据调用:call_endpoint 按 ID 调用操作(批量端点按请求体中的每一项计 1 次请求);fetch_data 把搜索和调用合并为一次往返,适合自然语言查询。
  • 实体与合规:sugra_entity_screen 将个人或组织名称与制裁数据库进行比对;sugra_entity_lookup 将 LEI(通过 GLEIF)或欧盟 VAT 号码(通过 VIES)解析为 KYB 信息包。
  • 组合智能体工具(仅托管版):resolve_entity 把股票代码、公司、指标、币种或货币对转换为标准实体;get_snapshot 运行 company_snapshot、macro_calendar 等命名配方;get_timeseries 返回有界的价格、宏观或 ETF 资金流序列。

Sugra API MCP Server 的使用场景

  • 市场问题:“显示苹果公司的当前报价和公司快照,再画出它过去一年的价格走势。”
  • 宏观研究:“最新的美国 CPI 数据是多少?宏观日历上的下一次发布是什么时候?”
  • 交易对手核查:“将这个供应商名称与制裁名单比对,并查询它的 LEI 记录。”
  • 期权分析:“获取 VIX 期限结构,告诉我目前是升水还是贴水。”
  • 网络情报:“查询这个 IP 地址的 ASN 和 RPKI 状态。”

Sugra API MCP Server 常见问题排查

  • 工具调用返回 missing_bearer_token 或 401:发现类请求无需认证,但调用工具需要 OAuth 登录或带 API 密钥的 Authorization: Bearer。
  • HTTP 429:超出了计划的每日配额,响应中带有 Retry-After 请求头。不会产生超额费用。
  • upstream_timeout:标记为 “slow” 或 “heavy” 的端点在上游冷启动时可能较慢,重试一次通常就能成功。
  • Claude 中出现重复的 Sugra 连接:如果先添加了自定义连接器,又从目录中添加,请删除自定义的那个。

常见问题

1

Sugra API MCP Server 是官方的吗?

是的。它由 Sugra Systems 运营,文档位于 docs.sugra.ai,并已上架 Anthropic 的 Connectors Directory 和 OpenAI Plugins Directory。

2

Sugra MCP 服务器免费吗?

有 Free 计划,每天 50 次请求,最多 2 个 API 密钥,无需信用卡。付费计划提高每日配额;MCP 调用与 API 共用配额。

3

用 OAuth 还是 API 密钥?

都可以。Claude 和 ChatGPT 通过 OAuth 登录;其他客户端可以发送 `Authorization: Bearer YOUR_API_KEY`。

4

托管版和本地版有什么区别?

托管服务器无需安装,并额外提供 `resolve_entity`、`get_snapshot` 和 `get_timeseries`。本地包 `sugra-api-mcp`(Python 3.11+,MIT 许可)通过 stdio 运行,使用 `SUGRA_API_KEY`,只提供网关工具。

5

制裁筛查结果是合规结论吗?

不是。Sugra 将结果描述为筛查信号;`hit` 是需要人工复核的候选匹配,`clear` 也不能证明不存在。

6

它支持 Claude Code、Cursor 和 VS Code 吗?

支持。可以使用托管 URL,或在能运行 stdio 服务器的客户端中使用本地包。

7

Sugra API 远程 MCP 服务器是什么?

Sugra API 的远程 MCP 服务器是一个托管的 Model Context Protocol 端点,地址是 https://mcp.sugra.ai/mcp,AI 助手无需在本地安装或运行任何东西即可连接。

8

怎么连接 Sugra API 的 MCP 服务器?

把端点 https://mcp.sugra.ai/mcp 添加到任意支持 MCP 的客户端,比如 Claude Code、Cursor 或 VS Code。本页的接入代码块可以一步配置好每个客户端。

9

Sugra API 的 MCP 服务器需要认证吗?

需要。Sugra API 使用 OAuth——第一次连接时,你的 MCP 客户端会打开浏览器窗口登录并授权,之后会复用这个凭证。

10

Sugra API 的 MCP 服务器用的是哪种传输方式?

Sugra API 暴露的是 streamable-http 端点,这是远程 MCP 服务器普遍使用、主流客户端都支持的传输方式。

评论