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:

CategoryDescriptionTools
NavigationBrowse projects, folders, and items; full-text search5
ValuesQuery measurements, correlate conditions with results4
FilesList files, extract structured data via viewer plugins, fetch columnar data6
MetadataTags, links, protocols, audit log, signatures, users, equipment11
WriteCreate projects/folders/items, upload/rename files, add values, move items, relocate files10
WikiCreate, read, and update markdown wiki pages3

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.

The remainder of this page documents the tools the server exposes — the same set is available to every client.

ToolDescription
list_projectsList all projects with item counts, owner, dates, and description.
list_foldersList folders within a project, showing the folder hierarchy with parent references.
list_itemsList items (experiments, specimens, actions) in a project. Optionally filter by folder, item type, or hierarchy level.
get_itemGet detailed information about a single item including its children, attached files, recorded values, and lab entries.
searchFull-text search across items, protocols, files, values, and tags. Supports multi-word queries with automatic intersection.

Value & Measurement Tools

ToolDescription
get_valuesGet all recorded values for an item, grouped by type: experimental conditions (inputs) and test results (outputs).
query_valuesSearch for values across items with filters by project, value type, record type, and numeric range.
list_value_typesList all defined value types (measurement parameters) with symbol, title, units, and category.
correlate_valuesFind correlations between experimental conditions and test results. Returns paired values for statistical analysis.

File Tools

ToolDescription
list_filesList all files attached to an item with metadata (title, extension, file type, hash, dates).
list_file_typesList all registered file types with extension and description.
extract_file_dataExtract detailed structured data from a file using the appropriate viewer plugin. Returns the file’s full parsed content as JSON.
extract_file_key_valuesExtract key measurement values from a file using the appropriate viewer plugin. Returns named values with units.
list_file_columnsList 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_columnsFetch 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

ToolDescription
list_tagsList all tags with item counts, name, and color.
get_item_linksGet bidirectional cross-reference links for an item.
list_equipmentList equipment records, optionally filtered by equipment type.
list_action_typesList action types, optionally filtered by kind (Synthesis, Testing, Measurement, etc.).
get_protocolsGet protocols for an item including type, validation status, form data, and status history.
get_audit_logQuery audit trail with filters for entity type, entity ID, operation, user, and date range.
get_commentsGet comments for an item with author and dates.
get_signaturesGet electronic signatures for an item with signer, meaning, and content hash.
list_usersList all users with roles, names, and email. Password hashes are never exposed.
get_project_statsGet summary statistics for a project (item, file, value, protocol, and tag counts).
list_audit_rulesList 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).

ToolDescription
create_projectCreate a new project. Admin/Super users can set the owner; others create as themselves.
create_folderCreate a folder within a project.
create_itemCreate an item (experiment, specimen, action) in a project or folder.
update_itemUpdate editable fields of an item (title, description, properties). Item must not be signed.
upload_fileUpload a local file and attach it to an item. Computes MD5 hash and uploads to WebDAV storage.
rename_fileRename an attached file. Updates the database record and renames the file on WebDAV storage.
add_valueAdd a numeric value (measurement or condition) to an item.
move_itemMove 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_folderMove 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_filesRepair 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.

ToolDescription
wiki_create_pageCreate 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_pageRead 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_pageUpdate 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.

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