MSDS-Chain
Supports containerized deployment of the MCP server for cloud-hosted or shared team access, enabling remote chemical safety verification through HTTP/SSE transport.
Provides transport classification data including IATA packing instructions for shipping chemicals internationally, supporting compliance with air transport regulations.
Required for production deployment of OAuth 2.1 integration with Claude Marketplace, enabling secure authentication and session management.
MSDS Chain MCP Server
Chemical safety intelligence for AI-assisted experiment design.
Powered by ChainSDS — a verified, always-current chemical safety database. Verified. Current. Growing.
An MCP server that gives AI agents (Claude Code, Cursor, Copilot, pi, etc.) access to chemical safety reasoning — compatibility checks, hazard analysis, regulatory compliance, PPE recommendations, storage guidance, and more.
Built for researchers who design experiments with AI and need safety verification integrated into their workflow.
Why This Exists
When you use Claude to plan a synthesis route or set up an Opentrons protocol, safety validation shouldn't be a separate step. This MCP server lets your AI assistant automatically:
Check if chemicals on the same deck are compatible
Flag dangerous mixing orders
Recommend PPE for the specific chemicals you're handling
Verify compliance with EU REACH, US OSHA/TSCA, and 7 other jurisdictions
Generate signed audit reports for GLP/GMP compliance
Related MCP server: Clarity MCP
Tools (23)
Tool | Description |
| One-call report for a chemical list: pairwise compatibility + per-chemical risk warnings |
| Cross-reference a chemical against 23 regulatory watch lists across 8 jurisdictions + 3 international conventions |
| Retrieve a specific SDS section (1-16) for a chemical |
| Signed download URL (~5 min) for the original SDS/MSDS PDF; includes source provenance |
| Safer substitutes for restricted or high-risk chemicals |
| Extract & validate chemical names from protocol text or code |
| Safe addition sequence for reagent pairs (e.g., acid into water) |
| Waste classification, container type, and disposal procedures |
| Upload MSDS PDF for AI-powered parsing and data extraction (requires API key) |
| Hazard-change diff between two SDS versions (H-code additions/removals + whether they change a verdict) |
| Pairwise compatibility for 2+ chemicals |
| GHS classification, H-codes, signal words, flash point |
| Gloves, eye protection, respiratory, body protection |
| Storage class, cabinet type, temperature, isolation rules |
| Spill, fire, or exposure emergency procedures |
| OEL/TLV/PEL/MAC across US, EU, JP, CN, INT |
| UN number, hazard class, packing group, ADR/IATA/IMDG |
| Multi-region: EU, US, CN, JP, CA, AU, SG list-backed; KR/TW accepted but no list wired |
| Look up chemicals by name, synonym, or CAS number |
| Natural language catch-all for any safety question |
| Full audit with signed PDF report (requires API key) |
| Download link for the signed audit PDF |
Quick Start
1. Get an API key
Sign up at msdschain.lagentbot.com → API Keys tab → create a key.
2. Install
git clone https://github.com/littleblakew/msds-chain-mcp.git
cd msds-chain-mcp
pip install -r requirements.txt3. Add to your AI coding agent
Architecture note: the hosted endpoint
https://mcp.lagentbot.comsits behind a distribution gateway that terminates OAuth 2.1 (PKCE + DCR) and serves/.well-known/oauth-authorization-server. The OAuth / browser sign-in flow described below applies only to that hosted gateway. This repo's bare core server (python server_remote.py, or the Docker image) does not implement OAuth or serve any/.well-knownendpoint — it only acceptsAuthorization: Bearer sk-msds-...orX-Api-Keypassthrough. If you self-host the core directly, use a static API key; there is no browser sign-in step.
Claude Code (Remote — recommended):
claude mcp add msds-chain --transport http https://mcp.lagentbot.com/mcpThen run /mcp in Claude Code and authenticate — a browser opens to sign in (email
code); your account is provisioned automatically and calls are metered to you (free
plan includes a monthly free quota). The legacy SSE endpoint
(--transport sse https://mcp.lagentbot.com/sse) still works but streamable
HTTP is preferred.
Claude Code (Plugin — includes skill + MCP):
/plugin install https://github.com/littleblakew/msds-chain-mcp.gitClaude Code (npm — remote, shim registers the hosted endpoint):
claude mcp add msds-chain -- npx -y msds-chain-mcp@latestclaude.ai (Web): Search "msds-chain" in Settings > Plugins (already published).
Manual config (Claude Code ~/.claude.json):
{
"mcpServers": {
"msds-chain": {
"type": "http",
"url": "https://mcp.lagentbot.com/mcp"
}
}
}Restart Claude Code, run /mcp, and authenticate (OAuth). You should then see
msds-chain in the MCP tools list. (Prefer a static key instead of OAuth? Pass it as
a header — --header "Authorization: Bearer sk-msds-your-key" — for headless clients.)
Claude Code Skill
The /msds-safety-check skill provides auto-detection and guided audit workflows.
Plugin install (includes skill + MCP automatically):
/plugin install https://github.com/littleblakew/msds-chain-mcp.gitManual install (skill only, if MCP already configured):
git clone https://github.com/littleblakew/msds-chain-mcp.git /tmp/msds-chain-mcp
cp -r /tmp/msds-chain-mcp/skills/msds-safety-check .agents/skills/msds-safety-check
ln -s ../../.agents/skills/msds-safety-check .claude/skills/msds-safety-checkWhat the Skill Does
Auto-detects chemicals in your conversations and offers safety checks
/msds-safety-check— guided audit for lab protocols or EHS complianceFreemium — basic queries work without API key, audit reports require free registration
Usage Examples
Experiment Protocol Review
User: I'm planning a Grignard reaction with magnesium turnings, diethyl ether,
and bromobenzene. Check if this setup is safe.
Claude:
→ calls batch_safety_check(["magnesium", "diethyl ether", "bromobenzene"])
→ Returns: compatibility matrix + per-chemical risk warnings (with source SDS)Opentrons Deck Safety Audit
User: My Opentrons deck has these in different slots:
Slot 1: Acetone, Slot 3: Concentrated H2SO4, Slot 5: Methanol,
Slot 7: Sodium borohydride. Any safety issues?
Claude:
→ calls check_chemical_compatibility(["acetone", "sulfuric acid", "methanol", "sodium borohydride"])
→ ⚠️ INCOMPATIBLE: Sodium borohydride + sulfuric acid (violent reaction, H2 gas evolution)
→ ⚠️ CAUTION: Acetone + sulfuric acid (exothermic)
→ Recommendation: Move sodium borohydride to maximum distance from acidsCompliance Check Before Shipping
User: We need to ship toluene and dichloromethane to our Japan lab.
What transport regulations apply?
Claude:
→ calls get_transport_classification(["toluene", "dichloromethane"])
→ calls check_regulatory_compliance(["toluene", "dichloromethane"], regions=["JP"])
→ Returns: UN numbers, IATA packing instructions, Japan-specific regulationsGenerate Signed Audit Report
User: Create a safety audit report for our quarterly review.
Chemicals: acetone, methanol, ethanol, isopropanol, hexane.
Claude:
→ calls create_audit_session("Q2 2026 Solvent Cabinet Review", ["acetone", "methanol", "ethanol", "isopropanol", "hexane"])
→ calls get_audit_report("SESSION-ID")
→ Returns: Signed PDF URL (Ed25519 signature, suitable for GLP/GMP compliance)Try These Prompts (one per tool)
Each prompt reliably triggers the named tool. Use them to evaluate the connector end-to-end.
Tool | Example prompt | What a good response shows |
| "Look up the chemical with CAS 67-64-1." | Acetone identified with synonyms + CAS |
| "Is it safe to store bleach next to ammonia?" | Plain-language hazard answer (toxic chloramine gas) |
| "Are acetone and hydrogen peroxide compatible?" | Pairwise verdict + reaction risk |
| "What are the GHS hazards of toluene?" | H-codes, signal word, flash point |
| "What PPE do I need to handle concentrated sulfuric acid?" | Gloves/eye/respiratory/body guidance |
| "How should I store sodium hydroxide and nitric acid?" | Storage class, cabinet, isolation rules |
| "What do I do if I spill chloroform?" | Step-by-step spill procedure |
| "What's the OEL for benzene in the EU?" | OEL/TLV/PEL values by region |
| "How is acetone classified for air freight?" | UN number, hazard class, packing group |
| "Is dichloromethane restricted in Japan and the EU?" | Per-region compliance status |
| "Which regulatory watch lists include formaldehyde?" | Matched lists across regions |
| "How do I dispose of waste acetonitrile?" | Waste class, container, procedure |
| "What's the safe order to mix sulfuric acid and water?" | Correct addition sequence + why |
| "Is there a safer substitute for hexane in extraction?" | Lower-hazard alternatives |
| "Validate the chemicals in this protocol: [paste text]" | Extracted + verified chemical list |
| "Show me section 4 (first aid) of the SDS for methanol." | Requested SDS section content |
| "What changed between SDS versions for acetone?" | Hazard changes between the two versions |
| "Run a full safety check on acetone, methanol, and hexane." | Compatibility matrix + risk warnings |
| "Parse this MSDS PDF and extract its hazard data." (API key) | Structured extraction from the PDF |
| "Create a signed audit report for our solvent cabinet." (API key) | Audit session + signed PDF |
| "Give me the download link for that audit report." (API key) | Signed PDF URL |
Privacy & Data Handling
Privacy Policy: msdschain.lagentbot.com/privacy
Read-only tools send only the chemical names / queries you provide; no personal data is required.
API-key tools (
upload_msds_pdf,create_audit_session,get_audit_report) associate activity with your account for audit traceability.Uploaded MSDS PDFs are processed for data extraction and contribute to the verified ChainSDS database per your account's data-sharing settings.
Third-Party AI Platform Integration
Connect to the hosted MSDS Chain MCP server from any AI platform that supports MCP.
Server URL (preferred): https://mcp.lagentbot.com/mcp (streamable HTTP)
The hosted endpoint serves both transports — streamable HTTP (/mcp, preferred) and SSE (/sse, for clients that only speak SSE: 悟空, Dify, Coze, etc.). Calls are metered per authenticated user.
Transport | Endpoint | Notes |
Streamable HTTP |
| Preferred — broadest, most robust |
SSE |
| For SSE-only clients |
Authentication: either OAuth (the client opens a browser sign-in on first connect) or a static header — Authorization: Bearer sk-msds-your-key — for headless clients.
悟空 (Wukong)
设置 → MCP 服务 → + 添加
类型:SSE
名称:
msds-chainURL:
https://mcp.lagentbot.com/sseHTTP Headers:
Authorization:Bearer sk-msds-your-key点击「添加」
Gemini CLI
Listed in the Gemini CLI extensions gallery. Install it with:
gemini extensions install https://github.com/littleblakew/msds-chain-mcpGemini asks you to confirm twice: once to trust the workspace, once to review the extension and the agent skill it carries. Installing it gives you two things:
the hosted MCP server at
https://mcp.lagentbot.com/mcp(remote, nothing runs locally)the
msds-safety-checkskill, which prompts Gemini to run a safety check when you are working through an experimental procedure
Signing in. Your first chemical question starts the sign-in automatically. Gemini opens a browser, you enter your email, and you paste back the code we send you. There is no API key to create beforehand and no credentials to fill in by hand: the server supports Dynamic Client Registration, so Gemini registers itself and completes the OAuth exchange on its own. A free account includes a monthly allowance.
Check that it connected:
gemini mcp listThen just ask, in chat:
Can acetone and sodium hypochlorite be stored in the same cabinet?Gemini picks the right tool for the question. Every answer names the supplier SDS it came from, with a link to the original PDF.
Dify / Coze / other platforms
General steps:
Find MCP server / tool integration settings
Select SSE transport type
Set URL to
https://mcp.lagentbot.com/sseAdd authentication header:
Authorization: Bearer sk-msds-your-key
Get an API key: Sign up at msdschain.lagentbot.com → API Keys tab → Create Key.
Remote Mode (HTTP)
For cloud deployment or shared team access, run as an HTTP server:
MSDS_API_KEY=sk-msds-xxx python server_remote.pyA single server_remote.py process always serves both transports concurrently —
Streamable HTTP at /mcp (recommended for Claude Code 2026+) and SSE at /sse
(compatibility). The MSDS_MCP_TRANSPORT env var is kept for backward compatibility
only; it is ignored at runtime.
Connect from Claude Code:
claude mcp add msds-chain --transport http https://your-server.example.com/mcpDocker
docker build -t msds-chain-mcp .
docker run -p 8080:8080 -e MSDS_API_KEY=sk-msds-xxx msds-chain-mcpConfiguration
Variable | Default | Description |
| (required) | API key from the MSDS Chain dashboard |
| Production URL | For development use only |
|
| Response language: |
Use Cases
Lab Automation (Opentrons / Hamilton / Tecan)
Pre-run protocol safety audit
Deck layout compatibility verification
Automated run compliance reports
Electronic Lab Notebooks (Benchling / LabArchives)
Safety annotations on experiment entries
Chemical registration with auto-flagging
Pharmaceutical R&D
Synthesis route safety screening
Multi-region regulatory pre-checks for new compounds
GMP-ready audit trail with signed receipts
Data Coverage — ChainSDS
Industry-sourced, AI-verified, and cryptographically signed.
4,000,000+ chemical records with multi-language aliases (EN/ZH/JA)
NFPA/GHS classification for compatibility rules
23 regulatory watch lists across 8 jurisdictions + 3 international conventions (EU, US, CN, JP, KR, CA, AU, SG; no Taiwan and no IARC coverage)
Occupational exposure limits from 5 standards (OSHA PEL, ACGIH TLV, EU IOELV, JP OEL, CN GBZ)
UN transport data for 16+ common lab chemicals
Version tracking — detects a newer SDS and diffs its hazard classification against the one you relied on
Architecture
Your AI Agent MSDS Chain MCP Server
┌──────────────────┐ ┌─────────────────────────┐
│ Claude Code │ │ 23 Safety Tools │
│ Cursor / pi │──MCP────▶│ ↓ │
│ Any MCP client │ │ ChainSDS Platform │
└──────────────────┘ └─────────────────────────┘The MCP server connects to the ChainSDS platform for verified safety reasoning.
Development
Test locally with the MCP inspector:
export MSDS_API_KEY=sk-msds-your-key
npx @modelcontextprotocol/inspector python server.pyTroubleshooting
Symptom | Likely cause | Fix |
| Missing or invalid API key | Verify the |
Tools don't appear in the client | MCP server not loaded | Fully restart the client after adding the server. Confirm |
Connection drops or times out | Wrong transport / endpoint | Prefer the streamable HTTP endpoint |
| Monthly call limit hit | Free keys are limited; upgrade your plan or wait for the monthly reset. |
Empty results for a known chemical | Name not matched | Retry with the CAS number or a common synonym; |
OAuth login fails in a browser client | OAuth metadata unreachable (hosted gateway only — self-hosted core has no OAuth) | Confirm |
Still stuck? Email contact@lagentbot.com or open an issue at github.com/littleblakew/msds-chain-mcp/issues.
Roadmap
get_waste_disposal— waste classification and disposal guidancecheck_mixing_order— safe addition sequence for reagent pairsget_chemical_alternatives— safer substitutes for restricted chemicalsRemote MCP (HTTP SSE / Streamable HTTP) for cloud-hosted access
OAuth 2.1 for Claude Marketplace integration (served by the distribution gateway in front of
mcp.lagentbot.com, not by this core server)
License
MIT
About
Built by LAgentBot — AI-powered chemical safety infrastructure.
Part of the MSDS Chain platform — the world's first AI Agent-driven chemical safety data trust network, powered by ChainSDS: verified, current, and growing.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI-powered bioprotocol optimization — generate, search, and manage lab protocols via MCP
- mcpOAuthio.scispot
Turn any LLM into your lab assistant: search samples, track experiments, analyze data with AI.
FTIR spectral search and material identification for AI agents via MCP.
EU compliance corpus across 8 frameworks (NIS2, DORA, AI Act, ISO 27001 + more) via MCP.
Related MCP Servers
- FlicenseAqualityDmaintenanceHigh-value scientific tools for AI agents — literature search (PubMed, arXiv, Semantic Scholar), chemical compound lookup (PubChem, ChEMBL), patent prior art search (USPTO, EPO), GPU spot prices across 4 providers, and real-time earth science data (USGS, NASA, OpenAQ). Per-call billing via API key. Keys issued instantly at https://mcp-site.com/keys/request6-
- AlicenseAqualityAmaintenanceCondition-aware ingredient & product safety intelligence for AI agents. Every answer carries a claim-level evidence attestation, verdict, an evidence tier, and a citation – curated against authoritative sources (LactMed, InfantRisk, PubMed, DSLD, DermNet, EU CosIng) by Health AI. Hosted MCP server – no install, no key. Endpoint: https://mcp.healthai.com (Streamable HTTP, JSON-RPC 292 npmMIT
- AlicenseNot gradedqualityBmaintenanceMCP server that connects AI assistants to a live Ketcher window, the open-source web-based chemical structure editor. Draw, edit, and organize structures directly in the canvas you have open.2MIT
- AlicenseNot gradedqualityBmaintenanceProvides an MCP interface for publication-quality chemical structure and reaction rendering from SMILES/InChI/molblock, with validation and name parsing. Enables AI agents to draw molecules and reactions as images.23 PyPIMIT