返回市场
移动-MCP

移动-MCP

作者:inovexcorp2 星标更新:2025-08-05

项目介绍

Mobi MCP Server

这是一个模型上下文协议(Model Context Protocol)服务器,允许与给定的Mobi实例进行代理接口交互。(GitHub

<img src="./logo.png" alt="mobi-mcp-logo" style="width: 80px;" />

预备条件

  • 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服务器连接到Claude Desktop,然后通过修改~/Library/Application\ Support/Claude/claude_desktop_config.json文件来配置应用程序使用您的MCP服务器,添加如下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(您可以使用--sse参数运行mobi-mcpPython脚本)。

这还假设您正在运行一个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 - 主要的MCP服务器实现,将Mobi功能与模型上下文协议桥接起来
  • Dockerfile - 使MCP服务器容器化部署成为可能
  • Makefile - 提供方便的命令用于环境设置和容器管理
  • requirements.txt - 列出项目所需的所有Python包依赖项

当前工具

Mobi MCP Server提供了以下工具,用于与您的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