ESG Hub MCP Server

com.ascent-partners由 ascent-partners.com 發布v1.4.3更新於 Oct 24, 2026

ESG knowledge base for AI agents: hybrid search, glossary, frameworks, industries, graph traversal.

發布方自己的服務:Coso Mcp

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取知識與記憶

概覽

AI 產生的概覽

把助理連接到 ESG Hub 百科,可搜尋、閱讀並交叉參照 ESG 文章、術語表、框架與產業分類。

可以做什麼
  • 以精確關鍵字或混合語意搜尋文章與精選外部資源
  • 依永久連結、slug 或記錄 ID 讀取整篇文章,並依欄位、支柱或標題瀏覽文章
  • 查詢術語定義,並列出術語表、報告框架與產業分類
  • 取得可用的篩選值與數量,並從某個頁面沿知識圖譜跳轉一層
  • 檢查伺服器健康狀態、版本與 API 位址
適用情境
適合需要可靠 ESG 參考資料的任務:GRI、IFRS S1/S2、TCFD、TNFD、ESRS 等標準、永續報告概念,以及術語定義與權威外部來源。適用於希望答案引用精選知識庫而非開放網路的調研與撰寫情境。
執行需求
可使用 esg-hub.ascent.partners 遠端端點,或透過 stdio 執行本機 npm 套件 @simonmak-ascent/esg-hub-mcp。未宣告任何驗證、API 金鑰、標頭或環境變數;需要能連線至 ESG Hub API 的網路。
安裝前請注意
知識庫為唯讀,不會寫入或刪除資料。查詢內容會傳送給第三方服務,README 說明網站的 AI 搜尋還會使用 DeepSeek 與 Brave Search 補充資料。內容為精選百科而非法規建議,標準條文應回到官方來源核對。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ESG Hub MCP Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.ascent-partners%2Fesg-hub/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "esg-hub": {
      "type": "http",
      "url": "https://esg-hub.ascent.partners/api/mcp"
    }
  }
}

README

ESG Hub

An open-access encyclopedia of Environmental, Social, and Governance (ESG) knowledge by Ascent Partners Foundation — 350+ articles, 240+ curated resources, books, courses, AI search, a public REST API, and an MCP server. Available in English, Simplified Chinese, and Traditional Chinese (Hong Kong).

[CI] [MCP Registry] [Glama] [License: MIT (code)] [Content: CC BY-SA 4.0]

Live site: esg-hub.ascent.partners

Overview

  • Knowledge base — 350+ ESG articles across standards (GRI, IFRS S1/S2, TCFD, TNFD, ESRS), regulations, frameworks, ratings, and regional (HK/APAC) guidance
  • AI search — ask questions in natural language; answers grounded in the knowledge base (SurrealDB BM25 + vector search, DeepSeek, Brave Search across authoritative ESG domains)
  • Public REST API — open access to all content: /api/v1
  • MCP server — connect AI agents directly: @esg-hub/mcp-server
  • Learning resources — free courses, books, and a curated video library
  • i18n — English, Simplified Chinese (zh), Traditional Chinese — Hong Kong (hk)

Architecture

mermaid
flowchart TB  U["User / AI agent"] --> WEB["Next.js 16 App Router · React 19<br/>next-intl (en / zh / hk)"]  WEB --> DB[("SurrealDB Cloud<br/>BM25 + vector search")]  WEB --> AI["DeepSeek + Brave Search<br/>grounded answers"]  WEB --> API["Public REST API · /api/v1"]  API --> MCP["MCP server<br/>@simonmak-ascent/esg-hub-mcp"]  V["APG ALB · esg-hub.ascent-partners.com"] --> WEB

How a query is answered

mermaid
sequenceDiagram  autonumber  actor U as User  participant W as Next.js app (App Router)  participant API as /api/ai-search · /api/ai-chat  participant S as search.ts  participant DB as SurrealDB (page · section · embedding)  participant AI as DeepSeek  participant X as Brave / OpenAlex  U->>W: ask a question  W->>API: POST query (+ locale)  API->>S: search(query)  S->>DB: BM25 keyword + vector (embedding) hybrid ranking  DB-->>S: ranked pages / sections + citations  API->>AI: synthesize answer from ranked context  API->>X: enrich (web + research)  X-->>API: references  API-->>W: streamed answer + citations  W-->>U: grounded response

Data model

mermaid
erDiagram  PAGE ||--o{ SECTION : contains  SECTION ||--o{ EMBEDDING : "vectorised as"  FRAMEWORK ||--o{ PAGE : classifies  INDUSTRY ||--o{ PAGE : tags  TERM ||--o{ PAGE : defines  PAGE {    string id    string slug    string title    string lang  }  SECTION {    string id    string heading    text body  }  EMBEDDING {    vector vector    string model  }

FRAMEWORK, INDUSTRY and TERM are the facets exposed by the /api/v1/* REST resources; page, section and embedding are the core SurrealDB tables.

Deployment

Production runs on the ecs-01/02/03 HA fleet as the digest-pinned container declared in container.json — the image is the deployable, not a release tree on a node. The fleet runs it as a container on :3210, and no node runs a routing web server. The ALB terminates TLS and routes esg-hub.ascent.partners to the container's port. The former Vercel project was retired. See apg-infra for the fleet deployment.

mermaid
flowchart LR  DEV["git push / PR"] --> CI["GitHub Actions<br/>lint · test · e2e · health-check"]  CI -->|merge to main| IMG["digest-pinned image<br/>container.json"]  IMG -->|the image is the deployable| PROD["container · :3210"]  ALB["APG ALB · TLS termination"] -->|esg-hub.ascent.partners| PROD  PROD --> SURF["/api/mcp · /api/v1<br/>MCP + REST surfaces"]

Tech Stack

Next.js 16 (App Router, React 19) · SurrealDB Cloud · Tailwind CSS v4 · next-intl · Vitest + Playwright · APG fleet (containerised)

Quick Start (≤ 5 minutes)

Fastest path — nothing to install: use the live site and the open API.

Run a local copy:

bash
git clone https://github.com/simonmak-ascent/esg-hub.gitcd esg-hubpnpm install        # note: requires sibling repo ../tool_package (private)cp .env.example .env  # fill in your own valuespnpm dev

Useful commands: pnpm lint · npx tsc --noEmit · npx vitest run · pnpm verify:db

Note: the app renders content from a SurrealDB database — you need your own instance and content to run a full copy. The public site and API are freely accessible without running anything.

API & MCP

  • REST API: open, no auth — GET /api/v1/pages, /api/v1/search?q=..., /api/v1/resources, /api/v1/meta (docs)
  • MCP server: see mcp-server/ — gives AI agents tools to search and read the knowledge base

Contributing

Use with Context7

Up-to-date ESG Hub documentation is indexed on Context7, so coding agents can pull it into context on demand. With the Context7 MCP server or ctx7 CLI installed, name the library in your prompt:

text
use library /simonmak-ascent/esg-hub for API and docs

License

  • Code: MIT
  • Encyclopedia content: CC BY-SA 4.0 by Ascent Partners Foundation

An Ascent Partners Foundation project.

If this saves you time, a ⭐ on GitHub helps others find it.

來源:README.md,提交 92db711

工具

12

get_server_info

Get Server Info

Use this first to confirm the ESG Hub MCP server is reachable and see its version and API base. It performs one liveness round-trip and returns only server metadata — name, version, API base, tool_count, and healthy — and never fails on an unreachable API: it returns healthy=false rather than an error. For sections, pillars, source domains, or totals use get_esg_metadata.

無需輸入參數。

search_esg

Search ESG (keyword)

Exact keyword (BM25) search across ESG Hub articles and curated external resources. Use when the user supplies a specific term, identifier, or phrase (e.g., 'GRI 305', 'Scope 3'); for paraphrased or conceptual questions prefer search_content, which adds semantic similarity. Terms are matched individually, not as one exact phrase, and `source` narrows to 'pages' (ESG Hub articles) or 'external' (curated third-party URLs). Returns one ranked page of up to `limit` (max 50) items — there is no pagination, so raise `limit` to widen; zero matches returns an empty item list, not an error. Reads are cached ~2 minutes and rate-limited per IP; a 5xx means the API is redeploying — retry shortly.

輸入參數limitquery必填source

search_content

Search ESG (hybrid)

Hybrid search that fuses 384-dim semantic similarity with BM25 and ESG re-ranking across ESG Hub articles and external resources. Use for conceptual or paraphrased questions — natural-language phrases work better than single tokens because `query` is embedded; when the user gives an exact identifier or phrase prefer the cheaper search_esg. `query` must be non-empty and `limit` defaults to 10 and is capped at 50. Returns one ranked page of up to `limit` items, each carrying a fused relevance score (higher is better); there is no pagination, so raise `limit` to widen, and unlike search_esg there is no `source` filter. Zero matches returns an empty item list, not an error. Cached ~2 minutes; rate-limited per IP; retry on 5xx.

輸入參數limitquery必填

get_esg_page

Get ESG Article

Read one ESG Hub article in full, addressed by permalink (e.g., 'standards/gri-101'), bare slug, or record ID ('page:abc123'). Use it once search_esg, search_content, or list_esg_pages has returned an identifier; to fetch a page's neighbours rather than its content use get_related. Returns the complete article body plus section, pillar, keywords, and canonical URL. It resolves only `page` records — a resource URL returns NOT_FOUND — and a redirect-only record resolves to its target; an unknown identifier returns NOT_FOUND. Cached ~10 minutes; rate-limited per IP; retry on 5xx.

輸入參數page_id必填

list_esg_pages

List ESG Articles

Enumerate ESG Hub articles, optionally filtered by `section`, `pillar`, or a title substring (`query` — an exact substring, not fuzzy). Use it to browse a whole section; to find articles by meaning use search_content. Results are ordered by section then title and returned one page at a time: pass the response's `next_offset` back as `offset` until `has_more` is false. `section` and `pillar` values must be taken from get_esg_metadata, and `offset` is a raw row count so advance it by `limit`; `limit` caps at 100 (default 20). A filter that matches nothing, or an `offset` past the end, returns an empty item list with `has_more=false`. Cached ~5 minutes; rate-limited per IP; retry on 5xx.

輸入參數limitqueryoffsetpillarsection

list_esg_resources

List External Resources

Enumerate curated external ESG resources (standards bodies, regulators, tools, databases) with their source URLs, optionally filtered by exact source `domain` or a title substring (`query` — an exact substring, not fuzzy). Use it to assemble authoritative references; for ESG Hub's own articles use list_esg_pages. Results are ordered by title and paged: pass `next_offset` back as `offset`, advancing it by `limit` (a raw row count). `domain` must be a host from get_esg_metadata's domain list; `limit` caps at 100 (default 20). A filter that matches nothing, or an `offset` past the end, returns an empty item list with `has_more=false`. Cached ~5 minutes; rate-limited per IP; retry on 5xx.

輸入參數limitquerydomainoffset

get_esg_metadata

Get Knowledge Base Stats

Discover the filter vocabulary for the knowledge base: total counts plus the exact `section`, `pillar`, and source-`domain` values with their counts. Call it before list_esg_pages or list_esg_resources so filters match real values; for server version and health use get_server_info. It takes no parameters, returns a single object (never paginated), and the lists are seeded reference values that change only on deploy, so they can be cached within a session. Cached ~10 minutes; rate-limited per IP; retry on 5xx.

無需輸入參數。

get_term

Get Glossary Term

Look up one glossary term by record ID ('term:abc123'), permalink, or exact name and return its full definition and facets. Use it when the user asks 'what is <term>'; to find terms by topic, or across all content, use search_esg or search_content, and to survey the glossary use list_terms. Name matching is exact (case-insensitive) with no fuzzy or partial matching, and it returns a single term, never a list. The `definition` field is the authoritative text and `facets` carries the topic/content_type classification; an unknown identifier returns NOT_FOUND. Cached ~10 minutes; rate-limited per IP; retry on 5xx.

輸入參數term_id必填

list_frameworks

List Reporting Frameworks

Enumerate the ESG reporting frameworks and standards the knowledge base covers (GRI, SASB/ISSB, TCFD, ESRS, CDP, TNFD, …), with each framework's abbreviation, description, and official website. Use it to discover coverage; for the ESG Hub articles that explain a standard use list_esg_pages with section='standards'. Results are ordered by name and paged: pass `next_offset` back as `offset`, a raw row count so advance it by `limit`; `limit` defaults to 20 and is capped at 100. An `offset` past the end returns an empty `items` list with `has_more=false`. Cached ~10 minutes; rate-limited per IP; retry on 5xx.

輸入參數limitoffset

list_industries

List Industries

Return the ESG Hub industry taxonomy (IFRS/SASB-style): every industry with its stable `industry_id`, English/Chinese names, and the `sector_id` it belongs to. Use it to obtain valid industry values for tag_content or to group coverage by sector; for article sections and source domains use get_esg_metadata. It takes no parameters and returns the complete taxonomy in one response (no pagination). The taxonomy is seeded reference data, not derived from articles, so it is stable across sessions and cached ~10 minutes; rate-limited per IP; retry on 5xx.

無需輸入參數。

list_terms

List Glossary Terms

Enumerate glossary terms, optionally filtered by an exact name substring (`query` — case-insensitive, not fuzzy). Use it to survey the glossary or page through terminology; to fetch one term's definition use get_term, and to search all content use search_esg or search_content. Results are ordered by name and paged: pass `next_offset` back as `offset` (a raw row count, so advance it by `limit`); `limit` defaults to 20 and is capped at 100. A query that matches nothing, or an `offset` past the end, returns an empty item list with `has_more=false`. Cached ~10 minutes; rate-limited per IP; retry on 5xx.

輸入參數limitqueryoffset

版本歷史

1
  1. v1.4.3最新Oct 14, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Ascent-Partners 整合