Esg MCP Servers README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the Esg MCP Servers listing page.

ESG MCP Servers

Open-source Model Context Protocol servers for ESG (Environmental, Social, and Governance) data extraction, analysis, and regulation management.

31 tools across 6 servers — install once, run only what you need.

Author: Ioannis Michos (johnmichos.tf@gmail.com)

Quick Start

Terminal
pip install esg-mcp-servers

Prerequisites

ServiceRequired for
PostgreSQL 16 + pgvectorVector storage, metrics, regulations
MongoDB 7PDF binary storage (GridFS)
Anthropic API keyRAG queries, metric extraction

Spin up local databases with Docker:

Terminal
docker compose up -d

Run the database migration:

bash
esg-mcp-migrate

Environment Variables

Copy .env.example and fill in your values:

bash
cp .env.example .env

Key variables:

VariableDefaultDescription
POSTGRES_DSNpostgresql://esg:esg@localhost/esg_platformPostgreSQL connection string
MONGODB_URImongodb://localhost:27017MongoDB connection string
ANTHROPIC_API_KEY—Required for RAG and LLM extraction
EMBEDDING_MODELSnowflake/snowflake-arctic-embed-l-v2.0Sentence-transformer model
EMBEDDING_DIMENSIONS1024Embedding vector size

Servers & Tools

esg-metrics-extractor (11 tools)

ESRS-aligned KPI extraction for emissions, energy, water, waste, social, and governance domains.

ToolDescription
extract_emissions_dataGHG Scope 1, 2, 3 extraction
extract_energy_dataEnergy consumption & renewables (ESRS E2)
extract_water_dataWater withdrawal, discharge, consumption (ESRS E3)
extract_waste_dataWaste generation, recycling, landfill (ESRS E5)
extract_social_dataWorkforce, diversity, H&S (ESRS S1)
extract_governance_dataBoard composition & governance (ESRS G1)
answer_esg_queryFree-text RAG Q&A over documents
keyword_similarity_searchSemantic keyword search in documents
detect_query_domainClassify query into ESG domain
detect_emissions_query_typeDetect emissions scope/year from query
batch_extract_metricsExtract all KPIs and persist to DB

esg-pdf-processor (5 tools)

PDF validation, text/table extraction, and embedding generation.

ToolDescription
verify_esg_reportRandomForest ESG report classifier
extract_text_chunksExtract and chunk PDF text
extract_tablesTable extraction with OCR fallback
generate_embeddingsBatch embedding generation
process_pdf_full_pipelineEnd-to-end: extract, embed, store

esg-vector-store (5 tools)

pgvector CRUD operations for document chunks and query cache.

ToolDescription
upsert_document_chunksInsert/update chunks with embeddings
similarity_searchCosine similarity search
get_cached_query_responseRetrieve cached LLM responses
cache_query_responseStore LLM response in cache
list_documentsList indexed documents

esg-regulations (5 tools)

EU ESG regulation download, ingestion, and semantic search.

ToolDescription
download_regulationDownload regulation PDF from EUR-Lex
download_all_regulationsBatch download all configured regulations
ingest_regulationExtract, parse articles, embed, store
search_regulation_textSemantic search across regulation articles
list_regulationsList ingested regulations

esg-scraper (5 tools)

ESG report discovery and download from the web.

ToolDescription
search_esg_reportsMulti-engine search for ESG PDFs
crawl_company_websiteDeep-crawl website for PDF links
download_pdfDownload PDF and store in GridFS
get_scraping_statusCheck scrape job status
cancel_scraping_jobCancel running scrape job

esg-mcp-all (31 tools)

All tools from all servers in a single process.

Claude Desktop Configuration

Add to your claude_desktop_config.json:

config.json
{
  "mcpServers": {
    "esg-metrics": {
      "command": "esg-metrics-extractor"
    },
    "esg-pdf": {
      "command": "esg-pdf-processor"
    },
    "esg-vectors": {
      "command": "esg-vector-store"
    },
    "esg-regulations": {
      "command": "esg-regulations"
    },
    "esg-scraper": {
      "command": "esg-scraper"
    }
  }
}

Or use the combined server for all tools:

config.json
{
  "mcpServers": {
    "esg": {
      "command": "esg-mcp-all"
    }
  }
}

Optional: Scraper Dependencies

The scraper server requires Selenium for JavaScript-heavy sites:

Terminal
pip install esg-mcp-servers[scraper]

Development

bash
git clone https://github.com/freminder/esg-mcp-servers.git
cd esg-mcp-servers
pip install -e ".[scraper,dev]"
docker compose up -d
esg-mcp-migrate

License

MIT — see LICENSE.