{"name":"io.github.freminder/esg-mcp-servers","slug":"freminder-esg-mcp-servers","title":"ESG MCP Servers","description":"31 MCP tools for ESG data extraction, PDF processing, vector search, and EU regulation analysis.","url":"https://mcp.market/server/freminder-esg-mcp-servers","rating":null,"grade":"C","score":58,"certified":false,"status":"active","category":"ai","tags":["ai","search"],"presence":{"score":3,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-02-28T10:04:22.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/freminder/esg-mcp-servers","website":null,"version":"0.1.2","remotes":[],"packages":[{"registryType":"pypi","identifier":"esg-mcp-servers","version":"0.1.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"Anthropic API key — required for RAG queries and LLM-based metric extraction","isRequired":true,"format":"string","isSecret":true,"name":"ANTHROPIC_API_KEY"},{"description":"PostgreSQL connection string with pgvector extension (e.g. postgresql://esg:esg@localhost/esg_platform)","isRequired":true,"format":"string","name":"POSTGRES_DSN"},{"description":"MongoDB connection string for PDF binary storage via GridFS (e.g. mongodb://localhost:27017)","isRequired":true,"format":"string","name":"MONGODB_URI"},{"description":"Sentence-transformer model name for embedding generation (default: Snowflake/snowflake-arctic-embed-l-v2.0)","format":"string","name":"EMBEDDING_MODEL"},{"description":"Embedding vector dimension size (default: 1024)","format":"string","name":"EMBEDDING_DIMENSIONS"}]}],"tools":[{"name":"answer_esg_query","description":"Answer a free-text ESG question about a document using Claude + RAG.","write_action":false,"price_micros":0,"input_schema":null},{"name":"batch_extract_metrics","description":"Extract all standard ESG KPIs from a document and persist to esg_metrics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cache_query_response","description":"Store an LLM response in the query cache.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cancel_scraping_job","description":"Cancel an in-progress scrape job.","write_action":true,"price_micros":0,"input_schema":null},{"name":"crawl_company_website","description":"Deep-crawl a company website to discover all PDF links. Use use_selenium=true for JavaScript-heavy sites.","write_action":false,"price_micros":0,"input_schema":null},{"name":"detect_emissions_query_type","description":"Classify if a query is emissions-specific and extract year/scope.","write_action":false,"price_micros":0,"input_schema":null},{"name":"detect_query_domain","description":"Classify an ESG query into its domain (emissions, energy, water, waste, social, governance, general).","write_action":false,"price_micros":0,"input_schema":null},{"name":"download_all_regulations","description":"Batch download all configured EU ESG regulations and Omnibus documents.","write_action":false,"price_micros":0,"input_schema":null},{"name":"download_pdf","description":"Download a PDF from a URL and store it in MongoDB GridFS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"download_regulation","description":"Download a specific EU ESG regulation PDF from EUR-Lex by CELEX number or short name (e.g. 'CSRD', '32022L2464').","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_emissions_data","description":"Extract GHG Scope 1, 2, 3 emissions values from a document.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_energy_data","description":"Extract energy consumption and renewable energy KPIs (ESRS E2) from a document.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_governance_data","description":"Extract board composition and governance KPIs (ESRS G1) from a document.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_social_data","description":"Extract workforce, diversity, and health & safety KPIs (ESRS S1) from a document.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_tables","description":"Extract ESG tables from a PDF using text patterns and OCR fallback.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_text_chunks","description":"Extract text from a PDF and split into overlapping chunks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_waste_data","description":"Extract waste generation, recycling, and landfill KPIs (ESRS E5) from a document.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_water_data","description":"Extract water withdrawal, discharge, and consumption KPIs (ESRS E3) from a document.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_embeddings","description":"Generate embeddings for text chunks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cached_query_response","description":"Retrieve a cached LLM response for a query.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_scraping_status","description":"Get the current status of a running scrape job.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ingest_regulation","description":"Process a downloaded regulation: extract text, parse articles, generate embeddings, and store in pgvector.","write_action":false,"price_micros":0,"input_schema":null},{"name":"keyword_similarity_search","description":"Find semantically similar keyword mentions in a document.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_documents","description":"List all indexed documents, optionally filtered by company.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_regulations","description":"List all downloaded and ingested regulations with metadata.","write_action":false,"price_micros":0,"input_schema":null},{"name":"process_pdf_full_pipeline","description":"Run the complete pipeline: extract text/tables, embed, store in pgvector. Returns document_id.","write_action":true,"price_micros":0,"input_schema":null},{"name":"search_esg_reports","description":"Search for ESG/sustainability PDF reports for a company using Google, Bing, and DuckDuckGo.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_regulation_text","description":"Semantic search across regulation articles using pgvector. Optionally filter by regulation short name or requirement type.","write_action":false,"price_micros":0,"input_schema":null},{"name":"similarity_search","description":"Find the top-k most semantically similar chunks to a query embedding.","write_action":false,"price_micros":0,"input_schema":null},{"name":"upsert_document_chunks","description":"Insert or update document text chunks with embeddings into pgvector.","write_action":true,"price_micros":0,"input_schema":null},{"name":"verify_esg_report","description":"Use the RandomForest classifier to determine if a PDF is an ESG report.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":58,"grade":"C","scanned_at":"2026-09-28T06:08:59.275Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-09-28T06:08:59.238Z","components":{"code":{"score":20,"max":25,"notes":["44 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":4,"max":15,"notes":["last push 212 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"esg_mcp_servers-0.1.2/src/esg_mcp_servers/services/metrics/similarity.py: …im=embedding_dim) _siamese_net.eval() return _siamese_net # ── Tex…"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"esg-mcp-servers","version":"0.1.2","found":true,"license":"MIT","dependencyCount":26,"publishedAt":"2026-02-28T09:58:24.734401Z"}],"repo":{"found":true,"owner":"freminder","repo":"esg-mcp-servers","archived":false,"pushedAt":"2026-02-28T10:04:22Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/122811591?v=4","ownerCreatedAt":"2023-01-16T15:48:08Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/122811591?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-02-28T10:04:22.000Z","score":3}}}},"grade_history":[],"reviews":[]}