Skip to main content

MCP servers for ESG report processing: metric extraction, vector search, PDF ingestion, regulation analysis, and web scraping

Project description

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

pip install esg-mcp-servers

Prerequisites

Service Required for
PostgreSQL 16 + pgvector Vector storage, metrics, regulations
MongoDB 7 PDF binary storage (GridFS)
Anthropic API key RAG queries, metric extraction

Spin up local databases with Docker:

docker compose up -d

Run the database migration:

esg-mcp-migrate

Environment Variables

Copy .env.example and fill in your values:

cp .env.example .env

Key variables:

Variable Default Description
POSTGRES_DSN postgresql://esg:esg@localhost/esg_platform PostgreSQL connection string
MONGODB_URI mongodb://localhost:27017 MongoDB connection string
ANTHROPIC_API_KEY Required for RAG and LLM extraction
EMBEDDING_MODEL Snowflake/snowflake-arctic-embed-l-v2.0 Sentence-transformer model
EMBEDDING_DIMENSIONS 1024 Embedding vector size

Servers & Tools

esg-metrics-extractor (11 tools)

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

Tool Description
extract_emissions_data GHG Scope 1, 2, 3 extraction
extract_energy_data Energy consumption & renewables (ESRS E2)
extract_water_data Water withdrawal, discharge, consumption (ESRS E3)
extract_waste_data Waste generation, recycling, landfill (ESRS E5)
extract_social_data Workforce, diversity, H&S (ESRS S1)
extract_governance_data Board composition & governance (ESRS G1)
answer_esg_query Free-text RAG Q&A over documents
keyword_similarity_search Semantic keyword search in documents
detect_query_domain Classify query into ESG domain
detect_emissions_query_type Detect emissions scope/year from query
batch_extract_metrics Extract all KPIs and persist to DB

esg-pdf-processor (5 tools)

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

Tool Description
verify_esg_report RandomForest ESG report classifier
extract_text_chunks Extract and chunk PDF text
extract_tables Table extraction with OCR fallback
generate_embeddings Batch embedding generation
process_pdf_full_pipeline End-to-end: extract, embed, store

esg-vector-store (5 tools)

pgvector CRUD operations for document chunks and query cache.

Tool Description
upsert_document_chunks Insert/update chunks with embeddings
similarity_search Cosine similarity search
get_cached_query_response Retrieve cached LLM responses
cache_query_response Store LLM response in cache
list_documents List indexed documents

esg-regulations (5 tools)

EU ESG regulation download, ingestion, and semantic search.

Tool Description
download_regulation Download regulation PDF from EUR-Lex
download_all_regulations Batch download all configured regulations
ingest_regulation Extract, parse articles, embed, store
search_regulation_text Semantic search across regulation articles
list_regulations List ingested regulations

esg-scraper (5 tools)

ESG report discovery and download from the web.

Tool Description
search_esg_reports Multi-engine search for ESG PDFs
crawl_company_website Deep-crawl website for PDF links
download_pdf Download PDF and store in GridFS
get_scraping_status Check scrape job status
cancel_scraping_job Cancel 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:

{
  "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:

{
  "mcpServers": {
    "esg": {
      "command": "esg-mcp-all"
    }
  }
}

Optional: Scraper Dependencies

The scraper server requires Selenium for JavaScript-heavy sites:

pip install esg-mcp-servers[scraper]

Development

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

esg_mcp_servers-0.1.1.tar.gz (20.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

esg_mcp_servers-0.1.1-py3-none-any.whl (93.4 kB view details)

Uploaded Python 3

File details

Details for the file esg_mcp_servers-0.1.1.tar.gz.

File metadata

  • Download URL: esg_mcp_servers-0.1.1.tar.gz
  • Upload date:
  • Size: 20.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for esg_mcp_servers-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2e7a326ebccd0d2dc03607438ade7f5b2de1155db7ca38102931b5207bdfd6ed
MD5 db400695dfabb47118d8ff1405f42f5e
BLAKE2b-256 3469f96fe65cd9394a933f3ed5c502c0cfc623528188cb899aef1bc96dd0ac47

See more details on using hashes here.

File details

Details for the file esg_mcp_servers-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for esg_mcp_servers-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0ace7b121cc0cb70c15382703a8eba6fe17ce3c21d35829b18fa097f1e1b484f
MD5 01e69026f62f6cc66582158fb030384e
BLAKE2b-256 a9eb484c3f12fc8df1ced5afc8117d398b502d08b1566fb7487e6ff71c671bf4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page