Mobi MCP服务器
这是一个模型上下文协议服务器,允许与给定实例进行代理接口 莫比 ().
先决条件
- Python 3.10或更高版本(MCP包需要)
- 正在运行的Mobi实例
模型上下文协议(MCP)是一种标准化的通信协议,使AI模型能够与外部进行交互 工具和服务。当与Mobi集成时,MCP提供了几个关键优势:
- AI模型和Mobi功能之间的无缝交互
- 结构化数据交换和命令执行
- 实时更新和双向通信
- 通过标准化接口增强自动化能力
- 与各种AI模型和服务的平台无关集成
安装
- 克隆存储库:
git clone
cd mobi-mcp- 创建Python虚拟环境:
python3.12 -m venv .venv注意:如果你没有Python 3.10+,请先安装它:
- macOS: brew install python@3.12
- 激活虚拟环境:
- macOS/Linux: source .venv/bin/activate
- 安装依赖项:
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#
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
