skills/davila7/labarchive-integration/SKILL.md
Electronic lab notebook API integration. Access notebooks, manage entries/attachments, backup notebooks, integrate with Protocols.io/Jupyter/REDCap, for programmatic ELN workflows.
npx skillsauth add aiskillstore/marketplace labarchive-integrationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
LabArchives is an electronic lab notebook platform for research documentation and data management. Access notebooks, manage entries and attachments, generate reports, and integrate with third-party tools programmatically via REST API.
This skill should be used when:
Set up API access credentials and regional endpoints for LabArchives API integration.
Prerequisites:
Configuration setup:
Use the scripts/setup_config.py script to create a configuration file:
python3 scripts/setup_config.py
This creates a config.yaml file with the following structure:
api_url: https://api.labarchives.com/api # or regional endpoint
access_key_id: YOUR_ACCESS_KEY_ID
access_password: YOUR_ACCESS_PASSWORD
Regional API endpoints:
https://api.labarchives.com/apihttps://auapi.labarchives.com/apihttps://ukapi.labarchives.com/apiFor detailed authentication instructions and troubleshooting, refer to references/authentication_guide.md.
Obtain user ID (UID) and access information required for subsequent API operations.
Workflow:
users/user_access_info API method with login credentialsusers/user_info_via_idExample using Python wrapper:
from labarchivespy.client import Client
# Initialize client
client = Client(api_url, access_key_id, access_password)
# Get user access info
login_params = {'login_or_email': user_email, 'password': auth_token}
response = client.make_call('users', 'user_access_info', params=login_params)
# Extract UID from response
import xml.etree.ElementTree as ET
uid = ET.fromstring(response.content)[0].text
# Get detailed user info
params = {'uid': uid}
user_info = client.make_call('users', 'user_info_via_id', params=params)
Manage notebook access, backup, and metadata retrieval.
Key operations:
Notebook backup example:
Use the scripts/notebook_operations.py script:
# Backup with attachments (default, creates 7z archive)
python3 scripts/notebook_operations.py backup --uid USER_ID --nbid NOTEBOOK_ID
# Backup without attachments, JSON format
python3 scripts/notebook_operations.py backup --uid USER_ID --nbid NOTEBOOK_ID --json --no-attachments
API endpoint format:
https://<api_url>/notebooks/notebook_backup?uid=<UID>&nbid=<NOTEBOOK_ID>&json=true&no_attachments=false
For comprehensive API method documentation, refer to references/api_reference.md.
Create, modify, and manage notebook entries and file attachments.
Entry operations:
Attachment workflow:
Use the scripts/entry_operations.py script:
# Upload attachment to an entry
python3 scripts/entry_operations.py upload --uid USER_ID --nbid NOTEBOOK_ID --entry-id ENTRY_ID --file /path/to/file.pdf
# Create a new entry with text content
python3 scripts/entry_operations.py create --uid USER_ID --nbid NOTEBOOK_ID --title "Experiment Results" --content "Results from today's experiment..."
Supported file types:
Generate institutional reports on notebook usage, activity, and compliance (Enterprise feature).
Available reports:
Report generation:
# Generate detailed usage report
response = client.make_call('site_reports', 'detailed_usage_report',
params={'start_date': '2025-01-01', 'end_date': '2025-10-20'})
LabArchives integrates with numerous scientific software platforms. This skill provides guidance on leveraging these integrations programmatically.
Supported integrations:
OAuth authentication: LabArchives now uses OAuth for all new integrations. Legacy integrations may use API key authentication.
For detailed integration setup instructions and use cases, refer to references/integrations.md.
# Complete backup script
python3 scripts/notebook_operations.py backup-all --email [email protected] --password AUTH_TOKEN
Install the labarchives-py wrapper for simplified API access:
git clone https://github.com/mcmero/labarchives-py
cd labarchives-py
uv pip install .
Alternatively, use direct HTTP requests via Python's requests library for custom implementations.
Common issues:
For additional support, contact LabArchives at [email protected].
This skill includes bundled resources to support LabArchives API integration:
setup_config.py: Interactive configuration file generator for API credentialsnotebook_operations.py: Utilities for listing, backing up, and managing notebooksentry_operations.py: Tools for creating entries and uploading attachmentsapi_reference.md: Comprehensive API endpoint documentation with parameters and examplesauthentication_guide.md: Detailed authentication setup and configuration instructionsintegrations.md: Third-party integration setup guides and use casesdevelopment
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.