CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Msds Chain

littleblakew/msds-chain-mcp
18 toolsauthSSEregistry active
Summary

Connects Claude to ChainSDS, a chemical safety database with 21 tools for lab protocol validation. You get pairwise compatibility checks, PPE recommendations, regulatory compliance across 10 jurisdictions (EU REACH, US OSHA, Japan, China), GHS hazard lookups, and transport classification. The batch_safety_check tool runs compatibility matrices for deck layouts in one call. It handles mixing order validation (acid into water checks), waste disposal procedures, and generates signed audit PDFs for GLP/GMP compliance. Useful when designing experiments with AI and you need safety verification inline instead of as a separate step. Works freemium for basic queries, requires API key from msdschain.lagentbot.com for audit reports and PDF uploads.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

18 tools
check_chemical_compatibilityCheck pairwise compatibility between a list of chemicals. Returns compatibility status (compatible / caution / incompatible) for each pair, along with specific hazard reasons and storage recommendations. Use this before an experiment to verify it is safe to use the listed chem...1 params

Check pairwise compatibility between a list of chemicals. Returns compatibility status (compatible / caution / incompatible) for each pair, along with specific hazard reasons and storage recommendations. Use this before an experiment to verify it is safe to use the listed chem...

Parameters* required
chemicalsarray
get_chemical_risk_warningsGet hazard and risk warnings for one or more chemicals. Returns GHS hazard classification, signal words (Danger/Warning), H-codes, flash point, toxicity, and recommended PPE. Use this to understand the specific dangers of each chemical before handling or storing them. Args: ch...1 params

Get hazard and risk warnings for one or more chemicals. Returns GHS hazard classification, signal words (Danger/Warning), H-codes, flash point, toxicity, and recommended PPE. Use this to understand the specific dangers of each chemical before handling or storing them. Args: ch...

Parameters* required
chemicalsarray
check_regulatory_complianceCheck multi-region regulatory compliance status for chemicals. Checks against: EU (SVHC/REACH/CLP/CMR), US (OSHA PEL/TSCA), CN, JP, KR, CA, AU, TW regulations. Use this when preparing export documentation, compliance audits, or when working with chemicals that may be restricte...2 params

Check multi-region regulatory compliance status for chemicals. Checks against: EU (SVHC/REACH/CLP/CMR), US (OSHA PEL/TSCA), CN, JP, KR, CA, AU, TW regulations. Use this when preparing export documentation, compliance audits, or when working with chemicals that may be restricte...

Parameters* required
regionsvalue
chemicalsarray
ask_chemical_safetyAsk any chemical safety question in natural language. Handles: storage conditions, spill/exposure emergency procedures, first-aid measures, PPE requirements, disposal guidance, MSDS lookups, GHS label interpretation, and general lab safety questions. Use this as the catch-all...1 params

Ask any chemical safety question in natural language. Handles: storage conditions, spill/exposure emergency procedures, first-aid measures, PPE requirements, disposal guidance, MSDS lookups, GHS label interpretation, and general lab safety questions. Use this as the catch-all...

Parameters* required
questionstring
get_ppe_recommendationGet PPE (Personal Protective Equipment) recommendations for chemicals. Returns specific glove types, eye protection, respiratory protection, and body protection requirements based on MSDS Section 8 data and GHS hazard codes. Args: chemicals: List of chemical names or CAS numbe...1 params

Get PPE (Personal Protective Equipment) recommendations for chemicals. Returns specific glove types, eye protection, respiratory protection, and body protection requirements based on MSDS Section 8 data and GHS hazard codes. Args: chemicals: List of chemical names or CAS numbe...

Parameters* required
chemicalsarray
get_storage_guidanceGet storage and isolation guidance for chemicals. Returns storage class (flammable/oxidizer/corrosive/toxic/general), recommended cabinet type and color code, temperature requirements, incompatible materials for isolation, and specific storage instructions derived from SDS Sec...1 params

Get storage and isolation guidance for chemicals. Returns storage class (flammable/oxidizer/corrosive/toxic/general), recommended cabinet type and color code, temperature requirements, incompatible materials for isolation, and specific storage instructions derived from SDS Sec...

Parameters* required
chemicalsarray
get_emergency_responseGet emergency response guidance for a chemical incident. Returns immediate actions, SDS-specific instructions from Section 4/5/6, and H-code-based guidance for three scenario types. Args: chemical: Chemical name or CAS number, e.g. "hydrochloric acid" scenario: Type of emergen...2 params

Get emergency response guidance for a chemical incident. Returns immediate actions, SDS-specific instructions from Section 4/5/6, and H-code-based guidance for three scenario types. Args: chemical: Chemical name or CAS number, e.g. "hydrochloric acid" scenario: Type of emergen...

Parameters* required
chemicalstring
scenariostring
default: spill
get_exposure_limitsGet occupational exposure limits (OEL/TLV/PEL/MAC) for chemicals. Returns TWA, STEL, and Ceiling values from multiple standards: - OSHA PEL (US) - ACGIH TLV (International) - EU SCOEL IOELV - Japan 産衛研 - China GBZ Args: chemicals: List of chemical names or CAS numbers region:...2 params

Get occupational exposure limits (OEL/TLV/PEL/MAC) for chemicals. Returns TWA, STEL, and Ceiling values from multiple standards: - OSHA PEL (US) - ACGIH TLV (International) - EU SCOEL IOELV - Japan 産衛研 - China GBZ Args: chemicals: List of chemical names or CAS numbers region:...

Parameters* required
regionvalue
chemicalsarray
get_transport_classificationGet UN transport classification for chemicals (dangerous goods shipping). Returns UN number, proper shipping name, hazard class, packing group, and transport mode details (ADR road, IATA air, IMDG sea). Args: chemicals: List of chemical names or CAS numbers1 params

Get UN transport classification for chemicals (dangerous goods shipping). Returns UN number, proper shipping name, hazard class, packing group, and transport mode details (ADR road, IATA air, IMDG sea). Args: chemicals: List of chemical names or CAS numbers

Parameters* required
chemicalsarray
create_audit_sessionRun a full MSDS safety audit for a list of chemicals and return a session id. Creates a persistent audit session on MSDS Chain, runs pairwise compatibility and risk analysis across all chemicals, and returns a session_id that can later be passed to `get_audit_report` to fetch...2 params

Run a full MSDS safety audit for a list of chemicals and return a session id. Creates a persistent audit session on MSDS Chain, runs pairwise compatibility and risk analysis across all chemicals, and returns a session_id that can later be passed to `get_audit_report` to fetch...

Parameters* required
chemicalsarray
experiment_namestring
get_audit_reportGet a short-lived signed URL to download the audit report PDF. Use after `create_audit_session` to retrieve an archivable PDF report containing the chemicals, compatibility matrix, risk warnings, and session metadata. Args: session_id: The session id returned by `create_audit_...1 params

Get a short-lived signed URL to download the audit report PDF. Use after `create_audit_session` to retrieve an archivable PDF report containing the chemicals, compatibility matrix, risk warnings, and session metadata. Args: session_id: The session id returned by `create_audit_...

Parameters* required
session_idstring
search_chemical_databaseSearch the MSDS Chain database for a specific chemical. Returns structured information: CAS number, chemical name, NFPA ratings (flammability, health, reactivity), GHS classification, and whether full MSDS data is available. Use this to verify a chemical is in the database bef...1 params

Search the MSDS Chain database for a specific chemical. Returns structured information: CAS number, chemical name, NFPA ratings (flammability, health, reactivity), GHS classification, and whether full MSDS data is available. Use this to verify a chemical is in the database bef...

Parameters* required
querystring
get_sds_sectionRetrieve a specific SDS (Safety Data Sheet) section for a chemical. The 16 standard GHS-SDS sections are: 1. Identification 2. Hazard(s) identification 3. Composition / ingredients 4. First-aid measures 5. Fire-fighting measures 6. Accidental release measures 7. Handling and s...2 params

Retrieve a specific SDS (Safety Data Sheet) section for a chemical. The 16 standard GHS-SDS sections are: 1. Identification 2. Hazard(s) identification 3. Composition / ingredients 4. First-aid measures 5. Fire-fighting measures 6. Accidental release measures 7. Handling and s...

Parameters* required
sectioninteger
chemicalstring
get_chemical_alternativesSuggest safer alternatives for a chemical, considering its intended use. Returns 2-4 alternative chemicals with: name, CAS number, why it's safer (lower toxicity, higher flash point, non-CMR, etc.), any trade-offs (cost, availability, performance), and relevant regulatory cont...2 params

Suggest safer alternatives for a chemical, considering its intended use. Returns 2-4 alternative chemicals with: name, CAS number, why it's safer (lower toxicity, higher flash point, non-CMR, etc.), any trade-offs (cost, availability, performance), and relevant regulatory cont...

Parameters* required
chemicalstring
use_casestring
default:
validate_protocol_chemicalsExtract and validate chemical names from a protocol or experiment description. Parses free-text or code (e.g., Opentrons Python protocol, lab notebook entry, SOP paragraph) to identify all mentioned chemicals, then checks each against the MSDS Chain database. Returns a structu...1 params

Extract and validate chemical names from a protocol or experiment description. Parses free-text or code (e.g., Opentrons Python protocol, lab notebook entry, SOP paragraph) to identify all mentioned chemicals, then checks each against the MSDS Chain database. Returns a structu...

Parameters* required
protocol_textstring
check_mixing_orderDetermine the safe order for mixing/adding two chemicals. Returns the recommended addition sequence, the dangerous sequence to avoid, reasoning (exothermic potential, gas evolution, splashing risk), and any required precautions (cooling, dilution rate, inert atmosphere). Class...3 params

Determine the safe order for mixing/adding two chemicals. Returns the recommended addition sequence, the dangerous sequence to avoid, reasoning (exothermic potential, gas evolution, splashing risk), and any required precautions (cooling, dilution rate, inert atmosphere). Class...

Parameters* required
contextstring
default:
chemical_astring
chemical_bstring
get_waste_disposalGet waste classification and disposal guidance for chemicals. Returns waste category (halogenated/non-halogenated/acidic/alkaline/ heavy metal/oxidizing/reactive), disposal method, container requirements, and incompatible waste streams that must NOT be mixed. Based on SDS Sect...1 params

Get waste classification and disposal guidance for chemicals. Returns waste category (halogenated/non-halogenated/acidic/alkaline/ heavy metal/oxidizing/reactive), disposal method, container requirements, and incompatible waste streams that must NOT be mixed. Based on SDS Sect...

Parameters* required
chemicalsarray
batch_safety_checkRun a comprehensive safety check on a list of chemicals in one call. Returns a combined report with: - Pairwise compatibility matrix (compatible/caution/incompatible) - PPE requirements (merged across all chemicals) - Storage grouping recommendations (which chemicals can share...1 params

Run a comprehensive safety check on a list of chemicals in one call. Returns a combined report with: - Pairwise compatibility matrix (compatible/caution/incompatible) - PPE requirements (merged across all chemicals) - Storage grouping recommendations (which chemicals can share...

Parameters* required
chemicalsarray

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

Tools (21)

ToolDescription
batch_safety_checkOne-call comprehensive report: compatibility + PPE + storage grouping for a chemical list
check_regulatory_listsCross-reference a chemical against 23 regulatory watch lists across 10 regions
get_sds_sectionRetrieve a specific SDS section (1-16) for a chemical
get_chemical_alternativesSafer substitutes for restricted or high-risk chemicals
validate_protocol_chemicalsExtract & validate chemical names from protocol text or code
check_mixing_orderSafe addition sequence for reagent pairs (e.g., acid into water)
get_waste_disposalWaste classification, container type, and disposal procedures
upload_msds_pdfUpload MSDS PDF for AI-powered parsing and data extraction (requires API key)
compare_sds_versionsStructured 7-dimension diff between SDS versions of a chemical
check_chemical_compatibilityPairwise compatibility for 2+ chemicals
get_chemical_risk_warningsGHS classification, H-codes, signal words, flash point
get_ppe_recommendationGloves, eye protection, respiratory, body protection
get_storage_guidanceStorage class, cabinet type, temperature, isolation rules
get_emergency_responseSpill, fire, or exposure emergency procedures
get_exposure_limitsOEL/TLV/PEL/MAC across US, EU, JP, CN, INT
get_transport_classificationUN number, hazard class, packing group, ADR/IATA/IMDG
check_regulatory_complianceMulti-region: EU, US, CN, JP, KR, CA, AU, TW, SG
search_chemical_databaseLook up chemicals by name, synonym, or CAS number
ask_chemical_safetyNatural language catch-all for any safety question
create_audit_sessionFull audit with signed PDF report (requires API key)
get_audit_reportDownload 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.txt

3. Add to your AI coding agent

Claude Code (Remote — recommended):

claude mcp add msds-chain --transport http https://mcp.lagentbot.com/mcp

Then 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 --url 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.git

Claude Code (npm — local):

claude mcp add msds-chain -- npx -y msds-chain-mcp@latest

claude.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.git

Manual 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-check

What the Skill Does

  • Auto-detects chemicals in your conversations and offers safety checks
  • /msds-safety-check — guided audit for lab protocols or EHS compliance
  • Freemium — 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, PPE requirements, storage grouping

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 acids

Compliance 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 regulations

Generate 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.

ToolExample promptWhat a good response shows
search_chemical_database"Look up the chemical with CAS 67-64-1."Acetone identified with synonyms + CAS
ask_chemical_safety"Is it safe to store bleach next to ammonia?"Plain-language hazard answer (toxic chloramine gas)
check_chemical_compatibility"Are acetone and hydrogen peroxide compatible?"Pairwise verdict + reaction risk
get_chemical_risk_warnings"What are the GHS hazards of toluene?"H-codes, signal word, flash point
get_ppe_recommendation"What PPE do I need to handle concentrated sulfuric acid?"Gloves/eye/respiratory/body guidance
get_storage_guidance"How should I store sodium hydroxide and nitric acid?"Storage class, cabinet, isolation rules
get_emergency_response"What do I do if I spill chloroform?"Step-by-step spill procedure
get_exposure_limits"What's the OEL for benzene in the EU?"OEL/TLV/PEL values by region
get_transport_classification"How is acetone classified for air freight?"UN number, hazard class, packing group
check_regulatory_compliance"Is dichloromethane restricted in Japan and the EU?"Per-region compliance status
check_regulatory_lists"Which regulatory watch lists include formaldehyde?"Matched lists across regions
get_waste_disposal"How do I dispose of waste acetonitrile?"Waste class, container, procedure
check_mixing_order"What's the safe order to mix sulfuric acid and water?"Correct addition sequence + why
get_chemical_alternatives"Is there a safer substitute for hexane in extraction?"Lower-hazard alternatives
validate_protocol_chemicals"Validate the chemicals in this protocol: [paste text]"Extracted + verified chemical list
get_sds_section"Show me section 4 (first aid) of the SDS for methanol."Requested SDS section content
compare_sds_versions"What changed between SDS versions for acetone?"7-dimension structured diff
batch_safety_check"Run a full safety check on acetone, methanol, and hexane."Compatibility + PPE + storage report
upload_msds_pdf"Parse this MSDS PDF and extract its hazard data." (API key)Structured extraction from the PDF
create_audit_session"Create a signed audit report for our solvent cabinet." (API key)Audit session + signed PDF
get_audit_report"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: Claude.ai, 悟空, Dify, Coze, etc.). Calls are metered per authenticated user.

TransportEndpointNotes
Streamable HTTPhttps://mcp.lagentbot.com/mcpPreferred — broadest, most robust
SSEhttps://mcp.lagentbot.com/sseFor 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)

  1. 设置 → MCP 服务 → + 添加
  2. 类型:SSE
  3. 名称:msds-chain
  4. URL:https://mcp.lagentbot.com/sse
  5. HTTP Headers:Authorization : Bearer sk-msds-your-key
  6. 点击「添加」

Dify / Coze / other platforms

General steps:

  1. Find MCP server / tool integration settings
  2. Select SSE transport type
  3. Set URL to https://mcp.lagentbot.com/sse
  4. Add 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:

# Streamable HTTP (recommended for Claude Code 2026+)
MSDS_API_KEY=sk-msds-xxx python server_remote.py

# Or SSE mode
MSDS_MCP_TRANSPORT=sse MSDS_API_KEY=sk-msds-xxx python server_remote.py

Connect from Claude Code:

claude mcp add msds-chain --transport http https://your-server.example.com/mcp

Docker

docker build -t msds-chain-mcp .
docker run -p 8080:8080 -e MSDS_API_KEY=sk-msds-xxx msds-chain-mcp

Configuration

VariableDefaultDescription
MSDS_API_KEY(required)API key from the MSDS Chain dashboard
MSDS_API_URLProduction URLFor development use only
MSDS_LANGenResponse language: en, zh, ja, de, id

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 10 regions (structured compliance for EU, US, CN, JP, KR, CA, AU, TW, SG)
  • 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 with 7-dimension SDS diff for regulatory updates

Architecture

Your AI Agent                  MSDS Chain MCP Server
┌──────────────────┐           ┌─────────────────────────┐
│ Claude Code      │           │ 21 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.py

Troubleshooting

SymptomLikely causeFix
401 Unauthorized on connectMissing or invalid API keyVerify the Authorization: Bearer sk-msds-... header (or MSDS_API_KEY env var). Generate a fresh key at msdschain.lagentbot.com → API Keys.
Tools don't appear in the clientMCP server not loadedFully restart the client after adding the server. Confirm msds-chain shows in the MCP/tools list.
Connection drops or times outWrong transport / endpointUse the SSE endpoint https://mcp.lagentbot.com/sse. Check GET /health returns {"status":"ok"}.
Quota exceeded / 429Monthly call limit hitFree keys are limited; upgrade your plan or wait for the monthly reset.
Empty results for a known chemicalName not matchedRetry with the CAS number or a common synonym; search_chemical_database accepts name, synonym, or CAS.
OAuth login fails in a browser clientOAuth metadata unreachableConfirm GET /.well-known/oauth-authorization-server returns 200; the client should auto-discover the authorize/token endpoints.

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 guidance
  • check_mixing_order — safe addition sequence for reagent pairs
  • get_chemical_alternatives — safer substitutes for restricted chemicals
  • Remote MCP (HTTP SSE / Streamable HTTP) for cloud-hosted access
  • OAuth 2.1 for Claude Marketplace integration

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.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

MSDS_API_KEY*secret

API key from msdschain.lagentbot.com (free: 100 calls/month)

Registryactive
Packagemsds-chain-mcp
TransportSSE
AuthRequired
UpdatedMay 30, 2026
View on GitHub