LabArchives Integration
A skill for safely integrating with the LabArchives ELN REST-like API and Inventory API v1, covering regional endpoints, HMAC signing, and verify-before-write workflows.
Web & APIAdvanced★ 33,030⑂ 3,248AI score 7/10Last updated: Aug 9, 2026
What it does
- Keeps the two LabArchives surfaces separate: the legacy ELN API (notebooks, entries, attachments, XML, signed query params) and Inventory API v1 (JSON,
/public/v1/...routes,X-LabArchives-*signed headers). - Walks through the HMAC-SHA-512 signing algorithm step by step, including the
api_user_loginredirect special case and Inventory's route-based signature input. - Ships a regional API host allowlist and warns against deriving API URLs from browser login hosts.
- Includes network-free helper scripts that emit redacted dry-run request plans, plus a safe LA container (ZIP) inspector that never extracts content.
- Enforces credential hygiene (env vars only, no
.envloading, no logging of query strings or auth headers) and operational rules on retries, throttling, and untrusted notebook content.
Who it's for
- Research data engineers exporting or backing up institutional LabArchives ELN data.
- Lab managers and developers syncing reagents, inventory, orders, or vendors through the Inventory API.
- IT and security reviewers who need a concrete checklist before approving an ELN integration.
Example uses
- "Validate our ELN API endpoint config" → run
setup_config.py regionsandcheck --require-user-idto confirm URL shape and required environment variables. - "Plan an
entries/entry_infocall before I write code" →entry_operations.py eln-planreturns a redacted JSON plan you can review and approve. - "Is this downloaded
example_lacontainer.zipa valid LA container?" →notebook_operations.py inspectchecks the manifest, bounds archive size, and rejects unsafe member paths, optionally writing a JSON report.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/labarchive-integration folder from the GitHub repo K-Dense-AI/scientific-agent-skills into my ~/.claude/skills/labarchive-integration/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git && mkdir -p ~/.claude/skills && cp -r scientific-agent-skills/skills/labarchive-integration ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and confirm Python 3.11+ and
uvare installed (python3 --version,uv --version). - Clone the repository:
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git - Copy the skill into your Claude skills folder:
mkdir -p ~/.claude/skills && cp -r scientific-agent-skills/skills/labarchive-integration ~/.claude/skills/ - Request an Access Key ID and Access Password from your institution's LabArchives contact (Enterprise licensing required), then export
LABARCHIVES_ELN_API_URL,LABARCHIVES_ACCESS_KEY_ID,LABARCHIVES_ACCESS_PASSWORD, and optionallyLABARCHIVES_USER_ID/LABARCHIVES_INVENTORY_LAB_ID. Never commit these values. - From the skill directory, run
uv run scripts/setup_config.py check --require-user-idto validate your setup. - Restart Claude Code and ask something like "help me integrate with the LabArchives ELN API" to trigger the skill.
View source on GitHub ↗License: MIT