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 集成