Token导航 LogoToken导航TokenDH.com
Iris MCP Server Template logo
数据服务stdio官方级别未说明来源级核验

Iris MCP Server Template

MCP Server

该模板展示了如何在InterSystems IRIS和MCP服务器中使用嵌入式Python,实现ObjectScript与Python代码的无缝交互,适用于需要高性能数据处理的场景。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
DockerClaude数据分析ClaudeVS Code

安装说明

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

作者 / 组织

lscalese

提供方

lscalese

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

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

命令预览

docker run --rm -it containers.intersystems.com/intersystems/passwordhash:1.1 -algorithm SHA512 -workfactor 10000

详细介绍

iris-mcp服务器模板

这是一个在InterSystems IRIS和MCP服务器中使用嵌入式Python的模板。 它演示了如何从dc.python.test类中的ObjectScript调用python库。 它演示了如何从python脚本python/irisapp.py处理IRIS

什么是嵌入式Python?

嵌入式Python是InterSystems IRIS的一个特性,它允许您 在同一进程中运行python代码 作为IRIS数据库引擎。

嵌入式Python的好处是:

  • 演出

- 不需要在IRIS和Python之间序列化数据 - Python中的数据处理速度与ObjectScript相当

  • 简洁

- 无需单独安装和配置Python - 易于同时部署IRIS和Python - 从Python轻松访问ObjectScript代码和功能

  • 安全

- 不需要为IRIS和Python之间的通信打开任何额外的端口

主要的好处是,您可以在InterSystems IRIS解决方案中使用Python库和框架的所有功能。

先决条件

确保你有 版本控制系统 和 安装。

安装docker

Clone/git将仓库拉入任何本地目录

$ git clone https://github.com/lscalese/iris-mcp-server-template.git

打开此目录中的终端并运行:

$ docker-compose build
  1. 在项目中运行IRIS容器:
$ docker-compose up -d

IRIS初始化

在这个模板中,提供了两种初始化iris的方法:merge和python。 merge.cpf是设置不同IRIS配置设置的便捷方法。 了解有关merge.cpf的更多信息.

  1. 使用merge初始化IRIS并创建IRIS数据库和命名空间

通知 合并.cpf 在Dockerfile中构建docker镜像时实现的文件

iris merge IRIS merge.cpf && \

其中包括:

[Actions]
CreateResource:Name=%DB_IRISAPP_DATA,Description="IRISAPP_DATA database"
CreateDatabase:Name=IRISAPP_DATA,Directory=/usr/irissys/mgr/IRISAPP_DATA
CreateResource:Name=%DB_IRISAPP_CODE,Description="IRISAPP_CODE database"
CreateDatabase:Name=IRISAPP_CODE,Directory=/usr/irissys/mgr/IRISAPP_CODE
CreateNamespace:Name=IRISAPP,Globals=IRISAPP_DATA,Routines=IRISAPP_CODE,Interop=1
ModifyService:Name=%Service_CallIn,Enabled=1,AutheEnabled=48
ModifyUser:Name=SuperUser,PasswordHash=a31d24aecc0bfe560a7e45bd913ad27c667dc25a75cbfd358c451bb595b6bd52bd25c82cafaa23ca1dd30b3b4947d12d3bb0ffb2a717df29912b743a281f97c1,0a4c463a2fa1e7542b61aa48800091ab688eb0a14bebf536638f411f5454c9343b9aa6402b4694f0a89b624407a5f43f0a38fc35216bb18aab7dc41ef9f056b1,10000,SHA512

如您所见,它为数据和代码创建了数据库IRISAPP_DATA和IRISAPP_CODE,创建了相关的IRISAPP命名空间来访问它,并创建了相关资源%IRISAPP_DATA%IRISAPP.CODE“来管理访问。

此外,它还使Callin服务能够通过ModifyService子句使Embedded python工作。 并将内置用户SuperUser的密码更新为“SYS”。此密码的哈希值是通过以下命令获得的:

docker run --rm -it containers.intersystems.com/intersystems/passwordhash:1.1 -algorithm SHA512 -workfactor 10000
  1. 使用python初始化IRIS。

我们经常使用特殊的 iris.script 在初始化过程中运行ObjectScript命令的文件-这里只是为了提供信息。 此模板向您展示了如何将python用于与以下相同的目的 iris_script.py文件。 它是通过Dockerfile中的行执行的:

irispython iris_script.py && \

iris_script.py文件包含开发人员如何通过Python代码初始化iris的不同服务的示例。

如何进行测试

从嵌入式Python使用IRIS

如前所述,嵌入式Python在 与IRIS相同的流程.

因此,在IRIS中使用嵌入式Python有两种选择:

  1. 使用共享文件夹在IRIS容器中运行代码。
  2. 将VsCode绑定到正在运行的IRIS容器。

在iris容器中运行python脚本:

# attach to the running IRIS container
docker-compose exec iris bash
# run the script
$ irispython ./python/irisapp.py

该脚本包含从python使用IRIS的不同示例,并对其进行了演示。 它应该返回如下内容:

Hello World
Method call:
It works!
42
Iris Version:
IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2023.2 (Build 227U) Mon Jul 31 2023 17:43:25 EDT
Creating new record in dc.python.PersistentClass
1
Printing one IRIS Object Dump:
+----------------- general information ---------------
|      oref value: 1
|      class name: dc.python.PersistentClass
|           %%OID: $lb("1","dc.python.PersistentClass")
| reference count: 1
+----------------- attribute values ------------------
|       %Concurrency = 1  
|               Test = "2023-09-03 10:56:45.227577"
+-----------------------------------------------------
1
Running SQL query Select * from dc_python.PersistentClass
[0]: ['1', '2023-09-03 10:56:45.227577']
Printing the whole global of the persistence storage for the class dc.python.PersistentClass:^dc.Package4C8F.PersistentC1A93D
key=['1']: 2023-09-03 10:56:45.227577
James
Jim
John

将VSCode绑定到正在运行的IRIS容器

在项目目录中打开VSCode。

docker-compose.yml 文件,右键单击它并选择 Compose Up.

容器启动并运行后,您可以打开docker扩展,右键单击容器名称并选择 Attach Visual Studio Code.

从嵌入式Python使用IRIS

在Devcontainer中打开VSCode-这是左下角的铃声(通知)按钮,您将在其中看到在Devcontainer模式下打开VSCode的建议。 遵循它-它将允许执行嵌入式Python脚本与IRIS,并同时进行开发。

打开devcontainer后,转到/python/irisapp.py并运行它,可以使用右上角的run按钮,也可以在终端中通过以下方式运行:

$ irispython python/irisapp.py

从ObjectScript使用Python库

打开IRIS终端:

$ docker-compose exec iris iris session iris
USER>zn "IRISAPP"

第一个测试演示了对使用dates-datetime的标准python库的调用

IRISAPP>d ##class(dc.python.test).Today()
2021-02-09

另一个示例显示了与repo或ZPM一起安装的自定义lib-sample.py的工作。它有一个函数hello,返回字符串“world”:

IRISAPP>d ##class(dc.python.test).Hello()
World

另一个示例展示了如何处理文件以及如何使用pandas和numpy-libs。 它计算了泰坦尼克号乘客的平均年龄:

IRISAPP>d ##class(dc.python.test).TitanicMeanAge()
mean age=29.69911764705882

在本地开发python脚本

默认情况下,模板配置为使用共享文件夹 ./python 对于python脚本 /home/irisowner/dev/python 在IRIS容器中。

您可以根据自己的喜好更改文件夹。通常python开发人员在根文件夹中命名项目。

建议使用虚拟环境。

在项目目录中创建虚拟环境。在VS Code菜单中单击New Terminal:

$ python3 -m venv .venv

激活虚拟环境:

$ source .venv/bin/activate

安装要求:

$ pip install -r requirements.txt

使用烧瓶

该模板还包含使用烧瓶的示例。

使用bash终端连接到运行中:

$ docker-compose exec iris bash

运行以下命令以启动flask服务器:

irispython python/flask/app.py

这将启动烧瓶服务器,您将看到以下输出:

 * Serving Flask app 'app'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000

5000 映射到 55030 在docker-compose.yml中

测试IT

你好,世界:

GET http://localhost:55030/
Accept: application/json

结果:

{
    "message": "Hello world"
}

发布一个新的持久类

POST http://localhost:55030/persistentclass
Content-Type: application/json
Accept: application/json
{
    "test": "toto"
}

结果:

{
    "id": 1,
    "test": "toto"
}

获取持久类

GET http://localhost:55030/persistentclass/1
Accept: application/json

结果:

{
    "id": 1,
    "test": "toto"
}

只需添加新的py文件,即可将模板用于您自己的开发。

配置Claude桌面版

确保 Python 和 已安装。\ 安装 克劳德桌面.

增添 %APPDATA%\claude_desktop_config.json

{
  "mcpServers": {
    "mon-serveur-docker": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:55040/mcp/",
        "--allow-http"
      ]
    }
  }
}

目录标签

目录标签

DockerClaude数据分析ObjectScript本地部署嵌入式Python数据库集成Python脚本IRIS数据库高性能计算

支持客户端

ClaudeVS Code

接入字段

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

stdio

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

session

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiosession部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP