Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

ESG Hub MCP Server

REMOTE · ESG-HUB.ASCENT.PARTNERS · 2 COMPONENTS · SCANNED OCT 8

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

76 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability82
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2883 tokens (~180/item across 16 items; 15 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
  • Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the ESG Hub MCP Server server?

ESG Hub MCP Server is a hosted endpoint at https://esg-hub.ascent.partners/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · esg-hub.ascent.partners

# add to Claude Code
claude mcp add --transport http simonmak-ascent-esg-hub 'https://esg-hub.ascent.partners/api/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "simonmak-ascent-esg-hub": {
      "url": "https://esg-hub.ascent.partners/api/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "simonmak-ascent-esg-hub": {
      "type": "http",
      "url": "https://esg-hub.ascent.partners/api/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.simonmak-ascent-esg-hub]
url = "https://esg-hub.ascent.partners/api/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "simonmak-ascent-esg-hub": {
      "type": "remote",
      "url": "https://esg-hub.ascent.partners/api/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add simonmak-ascent-esg-hub --url 'https://esg-hub.ascent.partners/api/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  simonmak-ascent-esg-hub:
    url: "https://esg-hub.ascent.partners/api/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "simonmak-ascent-esg-hub": {
      "Transport": "http",
      "Url": "https://esg-hub.ascent.partners/api/mcp"
    }
  }
}
# add to Vellum
assistant mcp add simonmak-ascent-esg-hub -t streamable-http -u 'https://esg-hub.ascent.partners/api/mcp'
// mcp.json
{
  "mcpServers": {
    "simonmak-ascent-esg-hub": {
      "type": "http",
      "url": "https://esg-hub.ascent.partners/api/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 6 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 10. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 4 Oct 26 0
    • Stability: unverified → 0.03 ▲ functional
  • 3 Oct 26 75

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 8 Oct 2026 · Probed https://esg-hub.ascent.partners/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.ascent.partners CN=YR2,O=Let's Encrypt,C=US 16 Aug 2026 14 Nov 2026 RSA 2048 SHA256-RSA 6ad209bb1cd7d98a1b106f969241524c33b
SANs: *.ascent.partners, ascent.partners
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of esg-hub.ascent.partners. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
partners. present 27907 8 Verified
ascent.partners. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://esg-hub.ascent.partners/api/mcp Verified 200
http (plaintext) http://esg-hub.ascent.partners/api/mcp HTTPS enforced 308 https://esg-hub.ascent.partners/api/mcp
MCP tools · 15 exposed · ~2,860 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
flag_content ~231

Queue one ESG Hub page for human curation — delist, remove, or review — with a reason. Nothing changes immediately: the call records a pending request and returns a `proposal_id`; the page is not modified until a curator approves it. Use it when an article is outdated, duplicated, or inaccurate; to edit its facet tags instead use tag_content. `action` controls the requested outcome: `delist` hides the page from listings, `remove` deletes it, and `review` (the default) flags it for a curator to decide. Give `page_id` as a permalink, slug, or record ID (resolved server-side) and a `reason` of at least 10 characters. Requires ESG_HUB_WRITE_TOKEN; rate-limited.

NameTypeReqDescription
actionstring–Requested outcome: delist (hide from listings), remove (delete), or review (default)
page_idstringyesPage permalink, slug, or record ID (e.g., 'page:abc123')
reasonstringyesWhy the page should be curated (min 10 characters)
NameTypeReqDescription
proposal_idstringyes–
statusstringyes–

No examples provided.

get_esg_metadata ~122

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
domainsarrayyes–
pillarsarrayyes–
sectionsarrayyes–
statsobjectyes–

No examples provided.

get_esg_page ~172

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.

NameTypeReqDescription
page_idstringyesPage identifier — permalink path, slug, or record ID (e.g., 'page:abc123')
NameTypeReqDescription
pageobjectyes–

No examples provided.

get_related ~183

Traverse the ESG Hub knowledge graph one hop from a page and return every connected record grouped by edge type. Use it after get_esg_page when you need neighbouring concepts; to read a page's own content use get_esg_page. Returns at most 15 related pages and, today, only `related_pages` edges; a page with no links returns an empty group list, not an error. There is no pagination. `record_id` accepts a `page:` record ID or a permalink; `edge_type` filters the result to one edge type (default: all). Cached ~10 minutes; rate-limited per IP; retry on 5xx.

NameTypeReqDescription
edge_typestring–Optional filter: only return edges of this type
record_idstringyesPage record ID (e.g., 'page:abc123') or permalink/slug
NameTypeReqDescription
edge_typesarrayyes–
edges_groupedobjectyes–
record_idstringyes–
totalnumberyes–

No examples provided.

get_server_info ~88

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
api_basestringyes–
healthybooleanyes–
namestringyes–
tool_countnumberyes–
versionstringyes–

No examples provided.

get_term ~180

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.

NameTypeReqDescription
term_idstringyesTerm identifier — slug/name (e.g., 'materiality') or record ID (e.g., 'term:abc123')
NameTypeReqDescription
termobjectyes–

No examples provided.

list_esg_pages ~258

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.

NameTypeReqDescription
limitnumber–Results per page
offsetnumber–Pagination offset — pass the previous next_offset
pillarstring–Filter by pillar (e.g., 'Environmental', 'Standards')
querystring–Filter by title substring
sectionstring–Filter by section (e.g., 'environmental', 'standards')
NameTypeReqDescription
itemsarrayyes–
paginationobjectyes–

No examples provided.

list_esg_resources ~232

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.

NameTypeReqDescription
domainstring–Filter by source domain (e.g., 'ghgprotocol.org')
limitnumber–Results per page
offsetnumber–Pagination offset — pass the previous next_offset
querystring–Filter by title substring
NameTypeReqDescription
itemsarrayyes–
paginationobjectyes–

No examples provided.

list_frameworks ~190

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.

NameTypeReqDescription
limitnumber–Results per page
offsetnumber–Pagination offset — pass the previous next_offset
NameTypeReqDescription
itemsarrayyes–
paginationobjectyes–

No examples provided.

list_industries ~129

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
countnumberyes–
industriesarrayyes–

No examples provided.

list_terms ~195

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.

NameTypeReqDescription
limitnumber–Results per page
offsetnumber–Pagination offset — pass the previous next_offset
querystring–Filter by name substring (case-insensitive)
NameTypeReqDescription
itemsarrayyes–
paginationobjectyes–

No examples provided.

propose_term ~195

Submit a new glossary term for human review. Nothing is published immediately: the call creates a pending proposal and returns a `proposal_id`; a reviewer decides whether it goes live, and only an approved term later appears in get_term. Use it only when the user explicitly wants to contribute a term; to look one up use get_term. `name` is the display name and `definition` must be at least 10 characters; `facets` is optional and its values should come from get_esg_metadata / list_industries vocabularies. Requires a write token in ESG_HUB_WRITE_TOKEN — a missing or invalid token returns 401 — and calls are rate-limited.

NameTypeReqDescription
definitionstringyesFull definition of the term (min 10 characters)
facetsobject–Optional metadata facets for the term
namestringyesThe glossary term name (e.g., 'Materiality Assessment')
NameTypeReqDescription
proposal_idstringyes–
statusstringyes–

No examples provided.

search_content ~205

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.

NameTypeReqDescription
limitnumber–Maximum number of results
querystringyesSearch query (e.g., 'carbon emissions', 'board diversity')
NameTypeReqDescription
countnumberyes–
itemsarrayyes–
modestringyes–
querystringyes–
totalnumberyes–

No examples provided.

search_esg ~220

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.

NameTypeReqDescription
limitnumber–Maximum number of results
querystringyesSearch query (e.g., 'carbon emissions', 'GRI standards')
sourcestring–Filter by source type
NameTypeReqDescription
countnumberyes–
itemsarrayyes–
querystringyes–
totalnumberyes–

No examples provided.

tag_content ~260

Replace the facet tags on one existing ESG Hub page: `topic`, `industry`, `framework`, `jurisdiction`, `stakeholder`, and `content_type`. The supplied `facets` object replaces the page's facet set, so any facet key you omit is cleared; the page body and title are never changed or deleted. The response echoes the page's new `facets` and `updated_at`. The array facets (`topic`, `industry`, `framework`, `jurisdiction`, `stakeholder`) each accept multiple values, while `content_type` is a single string; values are validated against the vocabulary from get_esg_metadata / list_industries, and an unrecognised value or key is rejected with 400. Give `page_id` as a permalink, slug, or record ID — permalinks are resolved to the underlying record server-side. Use it to curate tags; to read a page use get_esg_page, and to queue a removal use flag_content. Requires ESG_HUB_WRITE_TOKEN; rate-limited.

NameTypeReqDescription
facetsobjectyesFacet tags to apply to the page
page_idstringyesPage permalink, slug, or record ID (e.g., 'page:abc123')
NameTypeReqDescription
facetsobjectyes–
page_idstringyes–
titlestringyes–
updated_at–yes–

No examples provided.

Common questions

What is the ESG Hub MCP Server server?

ESG Hub MCP Server is listed in the public MCP registry as io.github.simonmak-ascent/esg-hub. ESG knowledge base for AI agents: hybrid search, glossary, frameworks, industries, graph traversal. This page covers its hosted endpoint (https://esg-hub.ascent.partners/api/mcp).

Is the ESG Hub MCP Server server safe to use?

ESG Hub MCP Server scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the ESG Hub MCP Server server expose?

ESG Hub MCP Server exposes 15 tools: get_server_info, search_esg, search_content, get_esg_page, list_esg_pages, and 10 more. Their descriptions and schemas cost roughly 2,860 tokens of context every time the server is loaded.

Does the ESG Hub MCP Server server require authentication?

No. We connected to ESG Hub MCP Server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the ESG Hub MCP Server server still maintained?

ESG Hub MCP Server is still listed as active in the MCP registry. We last reached this channel on 6 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.