这是一个模型上下文协议(Model Context Protocol)服务器,允许与给定的Mobi实例进行代理接口交互。(GitHub)
<img src="./logo.png" alt="mobi-mcp-logo" style="width: 80px;" />模型上下文协议(MCP)是一种标准化通信协议,使AI模型能够与外部工具和服务进行交互。当与Mobi集成时,MCP提供了以下关键优势:
克隆仓库:
git clone <repository-url>
cd mobi-mcp
创建Python虚拟环境:
python3.12 -m venv .venv
注意:如果没有Python 3.10+,先安装它:
brew install python@3.12激活虚拟环境:
source .venv/bin/activate安装依赖项:
pip install -r requirements.txt
最简单的方法是将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本身)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):记录的IRItitle (str):新分支的标题description (str):新分支的描述commit_iri (str):用作参考的提交IRI