模型上下文协议服务器

Mobi MCP Server是一个标准化的通信协议服务器,使AI模型能够与Mobi实例进行交互,提供结构化数据交换、实时更新和增强的自动化能力。

  • by inovexcorp
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 inovexcorp/mobi-mcp

使用说明

Mobi MCP服务器

这是一个模型上下文协议服务器,允许与给定实例进行代理接口 莫比 (GitHub).

先决条件

  • Python 3.10或更高版本(MCP包需要)
  • 正在运行的Mobi实例

模型上下文协议(MCP)是一种标准化的通信协议,使AI模型能够与外部进行交互 工具和服务。当与Mobi集成时,MCP提供了几个关键优势:

  • AI模型和Mobi功能之间的无缝交互
  • 结构化数据交换和命令执行
  • 实时更新和双向通信
  • 通过标准化接口增强自动化能力
  • 与各种AI模型和服务的平台无关集成

安装

  1. 克隆存储库:

    git clone <repository-url>
    cd mobi-mcp
    
  2. 创建Python虚拟环境:

    python3.12 -m venv .venv
    

    注意:如果你没有Python 3.10+,请先安装它:

    • macOS: brew install python@3.12
  3. 激活虚拟环境:

    • macOS/Linux: source .venv/bin/activate
  4. 安装依赖项:

    pip install -r requirements.txt
    

利用MCP服务器

快速尝试此操作的最简单方法是将MCP服务器连接到 克劳德桌面 然后 通过修改配置应用程序以使用MCP服务器 ~/Library/Application\ Support/Claude/claude_desktop_config.json 包含JSON代码段的文件,如下所示:

{
  "mcpServers": {
    "mobi": {
      "command": "/Users/{username}/git/mobi-mcp/.venv/bin/python",
      "args": ["/Users/{username}/git/mobi-mcp/src/mobi-mcp.py"],
      "env": {
        "MOBI_BASE_URL": "https://localhost:8443",
        "MOBI_USERNAME": "admin",
        "MOBI_PASSWORD": "admin",
        "MOBI_IGNORE_CERT": "true"
      }
    }
  }
}

--注意:由于需要绝对路径,您必须调整路径:)

Claude Desktop利用stdio MCP传输,但此服务器也支持SSE(您可以运行 mobi-mcp 带参数的python脚本 --sse).

这也假设您也在运行Mobi的实例。如果你想尝试在本地运行一个, 请参阅说明 这里.

配置

MCP服务器需要以下环境变量:

  • MOBI_BASE_URL:您的Mobi实例的基本URL(例如。, https://localhost:8443)
  • MOBI_USERNAME:Mobi身份验证的用户名
  • MOBI_PASSWORD:Mobi身份验证密码
  • MOBI_IGNORE_CERT:设置为 "true" 忽略SSL证书验证(对自签名证书有用)

存储库结构

存储库的组织是为了保持Mobi API交互层和MCP协议之间的干净分离 实施:

  • src/mobi.py -包含核心Mobi API客户端功能、处理身份验证、API调用和数据处理
  • src/mobi-mcp.py -连接Mobi功能和模型上下文协议的主要MCP服务器实现
  • Dockerfile -启用MCP服务器的容器化部署
  • Makefile -为环境设置和容器管理提供方便的命令
  • requirements.txt -列出项目所需的所有Python包依赖项

当前工具

Mobi MCP服务器提供以下工具用于与Mobi实例交互:

搜索和发现工具

record_search

在Mobi目录中搜索符合指定条件的记录。

  • 参数:
    • offset (int):分页的起始索引
    • limit (int):要检索的最大记录数
    • search_text (str,可选):要在记录中搜索的文本
    • keywords (list[str],可选):与记录匹配的关键字
    • types (list[str],可选):要筛选的记录类型。有效类型:
      • http://mobi.com/ontologies/ontology-editor#OntologyRecord (本体论/词汇)
      • http://mobi.com/ontologies/shapes-graph-editor#ShapesGraphRecord (SHACL)
      • http://mobi.com/ontologies/delimited#MappingRecord (映射)
      • http://mobi.com/ontologies/dataset#DatasetRecord (数据集)

entity_search

在Mobi目录中搜索元数据包含指定字符串的记录。

  • 参数:
    • search_for (str):在实体元数据中搜索子字符串
    • offset (int):结果集中的起点
    • limit (int):要返回的最大实体数
    • types (list[str],可选):要筛选的实体类型
    • keywords (list[str],可选):要筛选的关键字

数据检索工具

fetch_ontology_data

获取给定本体记录IRI的本体数据。

  • 参数:
    • ontology_iri (str):包含本体数据的记录的IRI(不是本体IRI本身)
  • 注: 使用搜索结果中的记录IRI,通常采用以下格式 https://mobi.com/records#<uuid>

get_shapes_graph

检索指定记录的形状图。

  • 参数:
    • record_id (str):记录的唯一标识符
    • branch_id (str,可选):记录中的分支标识符
    • commit_id (str,可选):将标识符提交给目标

内容创建工具

create_ontology_record

从RDF数据和元数据创建新的本体记录。

  • 参数:
    • rdf_string (str):作为字符串的RDF数据
    • rdf_format (str):RDF数据的格式(例如,“xml”、“turtle”)
    • title (str):本体的标题
    • description (str):本体论的文本描述
    • markdown_description (str,可选):描述的Markdown版本
    • keywords (list[str],可选):与本体关联的关键字
  • 注: 建议在创建新记录之前与用户确认

版本控制工具

create_branch_on_record

在现有记录上创建新分支。

  • 参数:
    • record_iri (str):记录的IRI
    • title (str):新分支的标题
    • description (str):新分支的描述
    • commit_iri (str):用作参考的承诺的IRI

使用说明

  • 所有工具都与Mobi的git版本控制系统交互
  • 记录IRI通常从搜索操作中返回
  • 服务器遵循类似于git存储库的语义版本控制实践
  • 在执行写操作之前,始终验证记录和分支IRI