使用说明
Mobi MCP服务器
这是一个模型上下文协议服务器,允许与给定实例进行代理接口 莫比 (GitHub).
先决条件
- Python 3.10或更高版本(MCP包需要)
- 正在运行的Mobi实例
模型上下文协议(MCP)是一种标准化的通信协议,使AI模型能够与外部进行交互 工具和服务。当与Mobi集成时,MCP提供了几个关键优势:
- AI模型和Mobi功能之间的无缝交互
- 结构化数据交换和命令执行
- 实时更新和双向通信
- 通过标准化接口增强自动化能力
- 与各种AI模型和服务的平台无关集成
安装
-
克隆存储库:
git clone <repository-url> cd mobi-mcp -
创建Python虚拟环境:
python3.12 -m venv .venv注意:如果你没有Python 3.10+,请先安装它:
- macOS:
brew install python@3.12
- macOS:
-
激活虚拟环境:
- macOS/Linux:
source .venv/bin/activate
- macOS/Linux:
-
安装依赖项:
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):记录的IRItitle(str):新分支的标题description(str):新分支的描述commit_iri(str):用作参考的承诺的IRI
使用说明
- 所有工具都与Mobi的git版本控制系统交互
- 记录IRI通常从搜索操作中返回
- 服务器遵循类似于git存储库的语义版本控制实践
- 在执行写操作之前,始终验证记录和分支IRI
