py mem mcp
MEM(教育媒体元数据)本体MCP服务器的Python实现, 建造于 FastMCP 并用 诗歌.
这是对 MEM-MCP 在Python中。
特性
服务器公开了以下MCP工具:
| 工具 | 说明 |
|---|---|
sparql_query | 对MEM三元组存储执行任意SPARQL SELECT查询 |
list_bundeslaender | 列出本体中可用的所有德国联邦州 |
list_schulfaecher | 列出给定州的所有学校科目 |
list_schularten | 列出给定州的所有学校类型 |
find_lehrplaene | 查找按州、学科、学校类型或年级筛选的课程 |
get_lehrplan_tree | 获取Lehrplan的层次结构(深度受限) |
get_children | 获取特定节点的直接子节点 |
search | 按关键字在Lehrplan节点上进行全文搜索 |
项目结构
py-mem-mcp/
├── pyproject.toml # Poetry project definition
├── Dockerfile # Multi-stage Docker image
├── docker-compose.yml
├── .env.example # Required environment variables
├── src/
│ └── py_mem_mcp/
│ ├── config.py # Environment variable helpers
│ ├── sparql.py # SparqlClient class
│ ├── bundesland.py # BundeslandRegistry class
│ ├── graphs.py # GraphRegistry class
│ ├── server.py # FastMCP server entry point
│ └── tools/
│ ├── query.py # sparql_query tool
│ ├── listing.py # list_* tools
│ ├── lehrplan.py # find/get Lehrplan tools
│ └── search.py # search tool
└── tests/ # pytest unit tests安装
# Install dependencies
poetry install
# Copy and edit the environment file
cp .env.example .env配置
所有配置都是通过环境变量(从加载 .env).
| 变量 | 描述 | 必填 |
|---|---|---|
SPARQL_ENDPOINT | SPARQL端点URL | ✔ |
GRAPH_ONTOLOGY | 本体图URI | ✔ |
GRAPH_SCHULART | scholart图URI | ✔ |
GRAPH_SCHULFACH 图形URI。✔ | ||
GRAPH_STATE_ | 状态的图形URI(例如。 GRAPH_STATE_SN) | 可选 |
PORT | HTTP端口(默认值: 3000) | 可选 |
运行服务器
直接通过Poetry运行服务器。确保在中设置所需的环境变量 .env 在开始之前。
# Development
poetry run py-mem-mcp
# Or directly
poetry run python -m py_mem_mcp.server使用Docker运行
提供了一个Dockerfile和docker-compose.yml来在容器中运行服务器。确保在中设置所需的环境变量 .env 在建造之前。 您还应该根据需要设置docker compose网络。我修改了它,使其适用于我的n8n实例,但你可以根据需要进行调整。
cp .env.example .env # edit as needed
docker compose up -d --build服务器将在以下时间可用 http://localhost:3000/mcp.
MCP客户端配置
{
"mcpServers": {
"mem-ontology": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}运行测试
poetry run pytest州代码
| 代码 | 州 |
|---|---|
| BW | 巴登-符腾堡州 |
| BY | 拜仁 |
| BE | 柏林 |
| BB | 勃兰登堡 |
| HB | 不来梅 |
| HH | 汉堡 |
| 他 | 黑森州 |
| MV | 梅克伦堡-前波美拉尼亚 |
| NI | 下萨克森州 |
| 西北 | 北威州 |
| RP | 莱茵-普法尔茨 |
| SL | 萨尔州 |
| SN | 萨克森 |
| ST | 萨克森-安哈尔特 |
| SH | 石勒苏益格-荷尔斯泰因州 |
| TH | 图林根 |
目前,课程数据可用于 由, 序列号,以及 角色扮演.
许可证
CC0-1.0
