AI Integration (MCP Server)
Overview
E-Lab Notebook includes a built-in MCP Server (ELNMCPServer.exe) that exposes your lab notebook data to AI assistants via the Model Context Protocol (MCP). This enables AI tools such as Claude Code to read, search, analyze, and write data in your notebook through a structured, tool-based interface.
The MCP server connects to the same database as the desktop application using your existing connection settings (read from the Windows Registry). It supports both read-only data analysis and write operations, with 39 tools organized into six categories:
| Category | Description | Tools |
|---|---|---|
| Navigation | Browse projects, folders, and items; full-text search | 5 |
| Values | Query measurements, correlate conditions with results | 4 |
| Files | List files, extract structured data via viewer plugins, fetch columnar data | 6 |
| Metadata | Tags, links, protocols, audit log, signatures, users, equipment | 11 |
| Write | Create projects/folders/items, upload/rename files, add values, move items, relocate files | 10 |
| Wiki | Create, read, and update markdown wiki pages | 3 |
Installation
The MCP server is included in the E-Lab Notebook installer. After installation, ELNMCPServer.exe is located in the same directory as the main application (typically C:\Program Files (x86)\E-LabNotebook3\).
Connection Guides
To use the MCP server, register it with the AI client of your choice. Each guide covers the registration command or config file, plus a quick verification step.
- Connecting from Claude Code — Anthropic’s official CLI; one-line registration.
- Connecting from Cursor — IDE that lets you use the ELN tools with GPT, Gemini, Claude, or any other model available in Cursor’s Agent mode.
The remainder of this page documents the tools the server exposes — the same set is available to every client.
Navigation Tools
| Tool | Description |
|---|---|
list_projects | List all projects with item counts, owner, dates, and description. |
list_folders | List folders within a project, showing the folder hierarchy with parent references. |
list_items | List items (experiments, specimens, actions) in a project. Optionally filter by folder, item type, or hierarchy level. |
get_item | Get detailed information about a single item including its children, attached files, recorded values, and lab entries. |
search | Full-text search across items, protocols, files, values, and tags. Supports multi-word queries with automatic intersection. |
Value & Measurement Tools
| Tool | Description |
|---|---|
get_values | Get all recorded values for an item, grouped by type: experimental conditions (inputs) and test results (outputs). |
query_values | Search for values across items with filters by project, value type, record type, and numeric range. |
list_value_types | List all defined value types (measurement parameters) with symbol, title, units, and category. |
correlate_values | Find correlations between experimental conditions and test results. Returns paired values for statistical analysis. |
File Tools
| Tool | Description |
|---|---|
list_files | List all files attached to an item with metadata (title, extension, file type, hash, dates). |
list_file_types | List all registered file types with extension and description. |
extract_file_data | Extract detailed structured data from a file using the appropriate viewer plugin. Returns the file’s full parsed content as JSON. |
extract_file_key_values | Extract key measurement values from a file using the appropriate viewer plugin. Returns named values with units. |
list_file_columns | List the columns of a tabular file (e.g. .log). Returns per-column metadata (index, name, units, dtype) plus total row count and time span. Use this before get_file_columns to discover what is available. |
get_file_columns | Fetch data for selected columns of a tabular file. Three modes: stats returns summary statistics per column; downsample (default) returns min/max-binned series capped at max_rows points; raw returns unbinned rows, optionally row-range scoped. |
Metadata Tools
| Tool | Description |
|---|---|
list_tags | List all tags with item counts, name, and color. |
get_item_links | Get bidirectional cross-reference links for an item. |
list_equipment | List equipment records, optionally filtered by equipment type. |
list_action_types | List action types, optionally filtered by kind (Synthesis, Testing, Measurement, etc.). |
get_protocols | Get protocols for an item including type, validation status, form data, and status history. |
get_audit_log | Query audit trail with filters for entity type, entity ID, operation, user, and date range. |
get_comments | Get comments for an item with author and dates. |
get_signatures | Get electronic signatures for an item with signer, meaning, and content hash. |
list_users | List all users with roles, names, and email. Password hashes are never exposed. |
get_project_stats | Get summary statistics for a project (item, file, value, protocol, and tag counts). |
list_audit_rules | List all data quality audit rules with their required file types and value types. |
Write Tools
Write tools allow AI assistants to create and organize data in the notebook. All write operations require the MCP server user to have appropriate permissions (at least PowerUser role for creating projects, ReadWrite access for modifying existing projects).
| Tool | Description |
|---|---|
create_project | Create a new project. Admin/Super users can set the owner; others create as themselves. |
create_folder | Create a folder within a project. |
create_item | Create an item (experiment, specimen, action) in a project or folder. |
update_item | Update editable fields of an item (title, description, properties). Item must not be signed. |
upload_file | Upload a local file and attach it to an item. Computes MD5 hash and uploads to WebDAV storage. |
rename_file | Rename an attached file. Updates the database record and renames the file on WebDAV storage. |
add_value | Add a numeric value (measurement or condition) to an item. |
move_item | Move a root-level item and all its children to a different project or folder. On cross-project moves, the item’s WebDAV files are relocated to the destination project’s storage. |
move_folder | Move a folder and all its items to a different project or parent folder. Cross-project moves also relocate the WebDAV files for all affected items. |
relocate_item_files | Repair broken file paths after a cross-project move where the database was updated but WebDAV files were left behind. Moves the files to the project the items currently belong to. |
Wiki Tools
Wiki tools manage markdown pages under a project’s Wiki folder. Pages are organized into five fixed sections: Goals, Ideas, Literature, Analysis, References. See Wiki Pages for the user-facing description.
| Tool | Description |
|---|---|
wiki_create_page | Create a new wiki page. Specify project_id, section (one of the five canonical names, case-insensitive), title, and body_md. Optional attachments is an array of absolute local paths uploaded with the page. Errors if a page with the same title already exists in that section — use wiki_update_page for edits. |
wiki_get_page | Read a wiki page by item_id. Returns the body markdown, item metadata (title, project, section, dates), and the list of non-.md attachments with their filenames. |
wiki_update_page | Update an existing page by item_id. Provide body_md (overwrites the existing .md in place) and/or attachments (appended — existing files are never removed). At least one is required. ETag conflict detection prevents silent overwrites of concurrent edits made through the desktop Markdown Editor. |
Copy MCP Link
The desktop application provides a Copy MCP Link command in the right-click context menus of projects, folders, items, files, and protocols. This copies a tool call reference to the clipboard (e.g., get_item(item_id: 42)) that you can paste into an AI assistant conversation to quickly navigate to that record.
This feature is available in:
- Project tree — right-click a project or folder
- Item tree — right-click an item, file, or protocol
Security & Permissions
- The MCP server runs locally on the same machine as the desktop application. It communicates via standard input/output (stdio) — no network ports are opened.
- Database credentials are read from the Windows Registry and decrypted using Windows DPAPI. They are never transmitted externally.
- Write tools enforce the same permission model as the desktop application: project ownership, role-based access, and signed-item protection.
- The MCP server identifies the current user from the last login recorded in the registry.
- All write operations are logged in the audit trail, just like changes made through the desktop UI.
See Also
- Connecting from Claude Code
- Connecting from Cursor
- Administration — user roles and project permissions
- Viewer Plugins — file format support and data extraction