Token导航 LogoToken导航TokenDH.com
MCP Server Lims logo
AI代理未说明官方级别未说明来源级核验

MCP Server Lims

MCP Server

MCP Server LIMS是一个用于管理实验室工作流程数据的工具,通过AI代理调用数据库和模拟仪器工具来执行样本处理和分析步骤。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
PythonClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

sheffler

提供方

sheffler

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP服务器LIMS

此存储库包含以下LinkedIn文章视频中展示的MCP服务器代码。该示例说明了Anthropic的Claude调用MCP数据库和模拟仪器工具来执行实验室工作流程的步骤。该示例具有挑战性,因为它要求在多个步骤中管理结构丰富的数据集合。

https://www.linkedin.com/pulse/ai-agent-lims-iot-mcp-tom-sheffler-ylmpc/

引言

LIMS(实验室信息管理系统)示例的目标是让AI代理在样本通过实验室工作流程时管理与样本集相关的数据。

这里的合成工作流程是您可能在实验室中找到的东西的简化版本,但省略了许多细节。在工作流程中,物理样本在处理或分析它们的仪器之间传递。还有与样品进入仪器和处理后的跟踪相关的数据流。

下图显示了一个示意图,说明了工作流的步骤和必须管理的数据。数据以表格的形式显示,每个步骤中每个样本都有一个条目。

![](./figs/Workflow01/Slide2.png)

示例

工作流程始于试管中样品的到达。有一些管子。每个都有一个“样品名称”和一个相关的“质量”。与在实验室中引入试管相关的数据被输入数据跟踪系统。这一步称为“准入”

现在样品已在系统中注册,它们可以由第一台仪器进行处理。样本被加载到仪器中,数据 *关于* 样品也被送往该仪器。然后,仪器可以开始处理。第一种仪器被称为“准备”仪器。它的输出由两部分组成。

  1. 输出管集合中制备的样品
  2. 每个样品的数据及其制备方法

在我们的模拟制备步骤中,处理每个样本,将遗传标签(“actg”、“acac”等)附着到试管中的样本上,并在输出数据中注明附着在每个样本上的标签。(无法提前知道哪个标签附着在哪个样本上。)在“状态”字段中还有一个关于此步骤是否成功执行的注释,可以是“通过”或“失败”。

然后,准备好的样品可以在“分析仪”仪器中进行处理。将第一台仪器的输出样本加载到第二台仪器中,并将每个样本的已知数据发送到分析仪。

分析仪器消耗物理样本,并发出有关每个分析样本的数据。这里有一个“文件名”和一个“度量”,用于衡量分析步骤的数量。

工作流执行的最终输出应该是一份报告,以易于理解的格式总结各个步骤的信息。

模拟仪器

真实的实验室仪器确实通过HL7或REST等协议处理样本采集的数据输入和输出。真实仪器上的此类接口可能可以使用MCP(模型上下文协议)作为“工具”与AI代理集成。

在这种模拟中,这里的工具不是调用真实仪器的API,而是产生模拟结果。制备仪器的“标签”和“状态”值是随机选择的,分析仪器的“度量”也是如此。

在现实世界中,处理一台仪器可能需要几分钟或几小时。在我们的模拟仪器中,我们通过每秒处理一个样本来记录时间的流逝。

人工智能代理和工具集成面临的挑战

在这个例子中,我们要求AI代理计划在一系列步骤中管理数据。AI代理可能会使用数据库来保存中间结果,它可能会发现使用SQL数据库对于准备跨步骤的数据的最终“连接”很有用。代理还可以设计一种管理数据的替代方法,或者可以简单地将其作为对话的一部分。

工作流规范指示分析步骤只处理“通过”的样本。

我们还定义了用具有丰富类型定义的接口表示仪器的工具。每种仪器都接受一系列结构并产生一系列结构。MCP对“preparation_tool”的定义示例如下。

JSON Schema定义的一些显著特征是:

  1. 在JSON的“$defs”节中使用命名结构“InputSample”
  2. 输入参数“sample_list”是一个数组
  3. 数组与类型为“#/$defs/InputSample”的所有“项”是同质的

在我们迄今为止的测试中,许多LLM能够管理满足这些模式要求的数据。

{
 'tools': [{'function': {'description': 'Prepare the samples for analysis.  '
                                        "Mark samples as 'passed' or "
                                        "'failed'. ",
                         'name': 'preparation_tool',
                         'parameters': {
                             '$defs': {
                                 'InputSample': {
                                     'properties': {
                                         'mass': {
                                             'description': 'sample mass in ng',
                                             'title': 'Mass',
                                             'type': 'integer'
                                         },
                                         'sample_name': {
                                             'description': 'sample name identifier',
                                             'title': 'Sample Name',
                                             'type': 'string'
                                         }
                                     },
                                     'required': ['sample_name', 'mass'],
                                     'title': 'InputSample',
                                     'type': 'object'
                                 }
                             },
                             'properties': {
                                 'sample_list': {
                                     'items': {
                                         '$ref': '#/$defs/InputSample'
                                     },
                                     'type': 'array'
                                 }
                             },
                             'required': ['sample_list'],
                             'type': 'object'
                         }
                     },
            'type': 'function'
        }]}

需求

除了此存储库的LIMS服务器外,Python服务器“mcp-Server-sqlite”也应运行,以便AI代理可以使用数据库。

源代码位于此处。

  • https://github.com/modelcontextprotocol/servers/tree/main/src/sqlite

提示

第一个提示描述了工作流的步骤以及如何通过执行工具来执行每个步骤。由于工具的执行需要某些数据的可用性,代理需要确定如何获取或生成这些数据。Agent的最终目标是生成一个工作流报告,总结所有步骤中的数据。

下面显示了第一个提示的开头。

The assistant's goal is to manage the data associated with a set of samples.  There are four steps of concern.

- accessioning - entering the initial samples in the database
- preparation - calling a tool to process the input samples to attach a tag and monitor a "passed" or "failed" status
- analysis - calling a tool to analyze the outputs of the preparation step whose status is "passed"
- report generation - displaying the sample data across the first 3 steps
...

针对较小LLM的较小工具测试

第一个提示的复杂性超过了较小的LLM可以执行的复杂性。第二个提示的目的只是锻炼LLM格式化和处理工具调用的能力,并将表格数据转换为工具所需的结构数组。

(下面显示的提示对于检查具有丰富类型的工具接口的正确性非常有用。)

Process the following table of data with the preparation_tool.

  Sample Name Input Mass

   NA12878   45 

   NCC1701   77 

   NACL   12 

   NA12879   32 

如何建造和运行

确保你有 uv 安装。

$ git clone https://github.com/sheffler/mcp-server-lims
$ cd mcp-server-lims
$ uv init
$ uv venv
$ . .venv/bin/activate
$ uv sync

此时,MCP服务器SDK的依赖项应安装在venv中。

Claude桌面配置

通过编辑配置Claude Desktop

  • ~/库/应用支持/Claude/Claude_desktop_config json
{
  "mcpServers": {
    "mcp-lims-server" : {
      "command": "/Users/sheffler/git/mcp-server-lims/.venv/bin/python",
      "args": [
        "/Users/sheffler/git/mcp-server-lims/lims_server.py"
      ]
    },
    "sqlite": {
      "command": "/Users/sheffler/.local/bin/uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/Users/sheffler/test.db"
      ]
    },
  }
}

Oterm的配置

~/库/应用支持/oterm/config.json

{"theme": "textual-dark",
 "splash-screen": false,
 "mcpServers": {

    "mcp-lims-server" : {
      "command": "/Users/sheffler/git/mcp-server-lims/.venv/bin/python",
      "args": [
        "/Users/sheffler/git/mcp-server-lims/lims_server.py"
      ]
    },

    "sqlite": {
      "command": "/Users/sheffler/.local/bin/uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/Users/sheffler/test.db"
      ]
    },

 }
}

Claude生成的工作流报告

下面显示了Claude(使用Claude Desktop)生成的示例输出报告。

![](./figs/claude-report.png)

转录本

随信附上与克劳德的谈话记录以供参考。

目录标签

目录标签

PythonClaudeAI代理实验室管理本地部署数据跟踪工作流程自动化

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP