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.2.tar.gz (67.6 kB 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.2-py3-none-any.whl (89.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: esg_mcp_servers-0.1.2.tar.gz
  • Upload date:
  • Size: 67.6 kB
  • 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.2.tar.gz
Algorithm Hash digest
SHA256 d7c632ac114ea8231713cf325530dc764716453392c38eb05bde028119603182
MD5 60eeffeb9353cf75707f8df017e46ed8
BLAKE2b-256 2886d4ba2d27add62528fad6ee8f26789d9cb4fa11a88322c3dc7f0be519a6db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for esg_mcp_servers-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 60e777b9d3fc6f3c7585ecf24f1bb1e78e737d935422c932ac049538c8e9caf3
MD5 6f029f28bd8b31452a389572ee167abc
BLAKE2b-256 9380756e47c4687d7a1696a644c05228ac7e25e9bd999bc19a4af0dc7495c1d7

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