Skip to main content
Glama
nrwoodpsh
by nrwoodpsh

py-ontology-server-starter

Ontology knowledge server starter — FastAPI semantic layer + Apache Jena Fuseki triplestore, consumed via both REST and MCP.

Declare Palantir-style object-centric ontologies (Object Type / Property / Link Type) in code, and handle storage and querying with W3C standards (RDF / SPARQL 1.1). Since the application code uses only the SPARQL standard, you can swap the store for GraphDB or another triplestore without changing the app.

┌─ 소비자 ──────────────────────────────┐
│  AI 에이전트(MCP)      앱·사람(REST)   │
└──────────┬───────────────┬───────────┘
           │               │
   mcp_server.py       api/rest.py      ← 이중 어댑터
           └───────┬───────┘
            ontology/ + store/           ← 코어: 온톨로지 정의 + SPARQL 클라이언트
                   │
        Apache Jena Fuseki (docker)      ← 저장·SPARQL·추론
                   ▲
             ingest/ 파이프라인           ← 지식원 → RDF 변환·적재

Quick Start

# 1. 트리플스토어 기동
docker compose up -d fuseki          # http://localhost:3030 (admin / admin)

# 2. 앱 설치
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

# 3. 샘플 데이터 적재 (CSV → RDF → Fuseki)
python -m ontology_server.ingest.example_csv data/sample/organizations.csv \
  --object-type organization --push

# 4. REST 서버 기동
uvicorn ontology_server.main:app --reload
# → http://localhost:8000/docs
curl localhost:8000/objects/organization

Related MCP server: mcp-ubergraph-query

MCP Adapter (for AI agents)

Runs over the stdio transport. In a Claude Code project's .mcp.json:

{
  "mcpServers": {
    "ontology": {
      "command": "/절대경로/.venv/bin/python",
      "args": ["-m", "ontology_server.mcp_server"]
    }
  }
}

Provided tools: list_object_types (schema discovery) · search_objects (instance lookup by type) · sparql_query (read-only direct query).

Adapting to Your Domain

  1. Replace src/ontology_server/ontology/sample.py with your domain ontology — change only the Object Type / Link Type declarations and the REST, MCP, and query builders follow along.

  2. Add per-source ingestion modules under src/ontology_server/ingest/ (see example_csv.py).

  3. If external integration or standards compliance is required, settle on a real URI scheme for namespaces and maintain an OWL schema document alongside.

Tests

pytest                       # 단위 테스트 (Fuseki 불필요)
RUN_INTEGRATION=1 pytest     # Fuseki 기동 상태에서 통합 테스트 포함

Structure

Path

Role

ontology/model.py

Object/Link Type definition framework (Palantir-style)

ontology/sample.py

Sample ontology — the file you replace in your project

store/sparql.py

SPARQL 1.1 client (the point where you can swap the store)

api/rest.py

REST adapter

mcp_server.py

MCP adapter

ingest/

Knowledge source → RDF ingestion pipeline

docker-compose.yml

Starts Fuseki

License

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    A Model Context Protocol server that provides read-only access to Ontotext GraphDB, enabling LLMs to explore RDF graphs and execute SPARQL queries.
    2
    11
    16
    GPL 3.0
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to query the Ubergraph biomedical ontology SPARQL endpoint with tools for custom SPARQL queries, term lookup, search, and hierarchy traversal.
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to interact with ontologies through the Ontology Access Kit, providing ontology querying and management capabilities.
    5
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nrwoodpsh/py-ontology-server-starter'

If you have feedback or need assistance with the MCP directory API, please join our Discord server