{
  "markdown": "# ESG MCP Servers\n\n<!-- mcp-name: io.github.freminder/esg-mcp-servers -->\n\nOpen-source [Model Context Protocol](https://modelcontextprotocol.io/) servers for ESG (Environmental, Social, and Governance) data extraction, analysis, and regulation management.\n\n**31 tools** across 6 servers — install once, run only what you need.\n\n**Author:** Ioannis Michos ([johnmichos.tf@gmail.com](mailto:johnmichos.tf@gmail.com))\n\n## Quick Start\n\n```bash\npip install esg-mcp-servers\n```\n\n### Prerequisites\n\n| Service | Required for |\n|---------|-------------|\n| PostgreSQL 16 + pgvector | Vector storage, metrics, regulations |\n| MongoDB 7 | PDF binary storage (GridFS) |\n| Anthropic API key | RAG queries, metric extraction |\n\nSpin up local databases with Docker:\n\n```bash\ndocker compose up -d\n```\n\nRun the database migration:\n\n```bash\nesg-mcp-migrate\n```\n\n### Environment Variables\n\nCopy `.env.example` and fill in your values:\n\n```bash\ncp .env.example .env\n```\n\nKey variables:\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `POSTGRES_DSN` | `postgresql://esg:esg@localhost/esg_platform` | PostgreSQL connection string |\n| `MONGODB_URI` | `mongodb://localhost:27017` | MongoDB connection string |\n| `ANTHROPIC_API_KEY` | — | Required for RAG and LLM extraction |\n| `EMBEDDING_MODEL` | `Snowflake/snowflake-arctic-embed-l-v2.0` | Sentence-transformer model |\n| `EMBEDDING_DIMENSIONS` | `1024` | Embedding vector size |\n\n## Servers & Tools\n\n### esg-metrics-extractor (11 tools)\n\nESRS-aligned KPI extraction for emissions, energy, water, waste, social, and governance domains.\n\n| Tool | Description |\n|------|-------------|\n| `extract_emissions_data` | GHG Scope 1, 2, 3 extraction |\n| `extract_energy_data` | Energy consumption & renewables (ESRS E2) |\n| `extract_water_data` | Water withdrawal, discharge, consumption (ESRS E3) |\n| `extract_waste_data` | Waste generation, recycling, landfill (ESRS E5) |\n| `extract_social_data` | Workforce, diversity, H&S (ESRS S1) |\n| `extract_governance_data` | Board composition & governance (ESRS G1) |\n| `answer_esg_query` | Free-text RAG Q&A over documents |\n| `keyword_similarity_search` | Semantic keyword search in documents |\n| `detect_query_domain` | Classify query into ESG domain |\n| `detect_emissions_query_type` | Detect emissions scope/year from query |\n| `batch_extract_metrics` | Extract all KPIs and persist to DB |\n\n### esg-pdf-processor (5 tools)\n\nPDF validation, text/table extraction, and embedding generation.\n\n| Tool | Description |\n|------|-------------|\n| `verify_esg_report` | RandomForest ESG report classifier |\n| `extract_text_chunks` | Extract and chunk PDF text |\n| `extract_tables` | Table extraction with OCR fallback |\n| `generate_embeddings` | Batch embedding generation |\n| `process_pdf_full_pipeline` | End-to-end: extract, embed, store |\n\n### esg-vector-store (5 tools)\n\npgvector CRUD operations for document chunks and query cache.\n\n| Tool | Description |\n|------|-------------|\n| `upsert_document_chunks` | Insert/update chunks with embeddings |\n| `similarity_search` | Cosine similarity search |\n| `get_cached_query_response` | Retrieve cached LLM responses |\n| `cache_query_response` | Store LLM response in cache |\n| `list_documents` | List indexed documents |\n\n### esg-regulations (5 tools)\n\nEU ESG regulation download, ingestion, and semantic search.\n\n| Tool | Description |\n|------|-------------|\n| `download_regulation` | Download regulation PDF from EUR-Lex |\n| `download_all_regulations` | Batch download all configured regulations |\n| `ingest_regulation` | Extract, parse articles, embed, store |\n| `search_regulation_text` | Semantic search across regulation articles |\n| `list_regulations` | List ingested regulations |\n\n### esg-scraper (5 tools)\n\nESG report discovery and download from the web.\n\n| Tool | Description |\n|------|-------------|\n| `search_esg_reports` | Multi-engine search for ESG PDFs |\n| `crawl_company_website` | Deep-crawl website for PDF links |\n| `download_pdf` | Download PDF and store in GridFS |\n| `get_scraping_status` | Check scrape job status |\n| `cancel_scraping_job` | Cancel running scrape job |\n\n### esg-mcp-all (31 tools)\n\nAll tools from all servers in a single process.\n\n## Claude Desktop Configuration\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"esg-metrics\": {\n      \"command\": \"esg-metrics-extractor\"\n    },\n    \"esg-pdf\": {\n      \"command\": \"esg-pdf-processor\"\n    },\n    \"esg-vectors\": {\n      \"command\": \"esg-vector-store\"\n    },\n    \"esg-regulations\": {\n      \"command\": \"esg-regulations\"\n    },\n    \"esg-scraper\": {\n      \"command\": \"esg-scraper\"\n    }\n  }\n}\n```\n\nOr use the combined server for all tools:\n\n```json\n{\n  \"mcpServers\": {\n    \"esg\": {\n      \"command\": \"esg-mcp-all\"\n    }\n  }\n}\n```\n\n## Optional: Scraper Dependencies\n\nThe scraper server requires Selenium for JavaScript-heavy sites:\n\n```bash\npip install esg-mcp-servers[scraper]\n```\n\n## Development\n\n```bash\ngit clone https://github.com/freminder/esg-mcp-servers.git\ncd esg-mcp-servers\npip install -e \".[scraper,dev]\"\ndocker compose up -d\nesg-mcp-migrate\n```\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n",
  "bytes": 5144,
  "sha": "8af54647a726347dbf224b5ea807cea5a98ae350793d1faf2d07c85e821be1fd",
  "repo_slug": "freminder/esg-mcp-servers",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_freminder_esg_mcp_servers_4b1a77c4/readme"
}