Skip to main content

ROBOT Ontology MCP

MCP server wrapping the ROBOT command-line tool for OWL ontology editing.

Prerequisites

ROBOT must be installed and available on your PATH:

robot --version

See ROBOT installation for setup instructions.

Installation

With uvx (recommended)

uvx robot-tool-mcp

From source

git clone https://github.com/<owner>/robot-mcp.git
cd robot-mcp
uv run robot-mcp

Claude Desktop Configuration

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "robot-mcp": {
      "command": "uvx",
      "args": ["robot-tool-mcp"]
    }
  }
}

Or for local development:

{
  "mcpServers": {
    "robot-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/robot-tool-mcp", "robot-mcp"]
    }
  }
}

Tools

Individual Command Tools (25 tools)

Each ROBOT command is exposed as a dedicated MCP tool with typed parameters:

Tool Description
robot_annotate Add metadata annotations to an ontology
robot_collapse Simplify class hierarchies by removing intermediates
robot_convert Transform ontology between formats (OWL, OBO, TTL, etc.)
robot_diff Compare two ontologies semantically
robot_expand Convert shortcut annotations into OWL axioms
robot_explain Debug inferred statements with minimal explanations
robot_export Generate tabular output (CSV, TSV, JSON, HTML, XLSX)
robot_extract Create a subset module (STAR, BOT, TOP, MIREOT)
robot_filter Selectively copy axioms (inverse of remove)
robot_materialize Assert inferred superclass relationships
robot_measure Compute ontology metrics and statistics
robot_merge Combine multiple ontologies into one
robot_mirror Cache imported ontologies locally
robot_query Execute SPARQL queries (SELECT, ASK, CONSTRUCT, UPDATE)
robot_reason Run OWL reasoner (ELK, HermiT, JFact, Whelk)
robot_reduce Remove redundant subClassOf axioms
robot_relax Convert equivalence axioms to subclass axioms
robot_remove Eliminate selected axioms (inverse of filter)
robot_rename Modify entity IRIs
robot_repair Fix common ontology problems
robot_report Run quality control checks with violation report
robot_template Convert tabular data (CSV/TSV) into OWL
robot_unmerge Remove axioms of one ontology from another
robot_validate_profile Check OWL 2 profile conformance (EL/RL/QL/DL)
robot_verify Check ontology against SPARQL rules

Chain Tool

The robot_chain tool pipelines multiple commands in a single ROBOT process. Ontology objects pass in-memory between steps — no intermediate files needed.

{
  "steps": [
    {"command": "merge", "input": ["edit.owl", "base.owl"]},
    {"command": "reason", "reasoner": "ELK"},
    {"command": "annotate", "ontology_iri": "https://example.org/my.owl"},
    {"command": "convert", "format": "ofn", "output": "result.owl"}
  ]
}

This produces a single CLI call:

robot merge --input edit.owl --input base.owl \
      reason --reasoner ELK \
      annotate --ontology-iri https://example.org/my.owl \
      convert --format ofn --output result.owl

Argument mapping rules:

  • Underscores become hyphens: ontology_iri--ontology-iri
  • Lists repeat the flag: {"input": ["a.owl", "b.owl"]}--input a.owl --input b.owl
  • Booleans become strings: true"true"

Common Workflows

Build a release:

{
  "steps": [
    {"command": "merge", "input": ["edit.owl"]},
    {"command": "reason", "reasoner": "ELK"},
    {"command": "relax"},
    {"command": "reduce", "reasoner": "ELK"},
    {"command": "annotate", "ontology_iri": "https://example.org/release.owl",
     "version_iri": "https://example.org/2024-01-01/release.owl"},
    {"command": "convert", "output": "release.owl"}
  ]
}

Extract a module:

{
  "steps": [
    {"command": "merge", "input": ["full-ontology.owl"]},
    {"command": "extract", "method": "BOT", "term": ["GO:0005634", "GO:0005737"]},
    {"command": "annotate", "ontology_iri": "https://example.org/module.owl"},
    {"command": "convert", "output": "module.owl"}
  ]
}

Quality check:

{
  "steps": [
    {"command": "merge", "input": ["edit.owl"]},
    {"command": "report", "fail_on": "ERROR", "output": "report.tsv"}
  ]
}

Global Options

All tools support these global options:

Option Description
catalog XML catalog file for resolving imports
prefixes JSON-LD prefix file
add_prefix Add individual prefixes (list)
noprefixes Disable default prefixes
verbose Enable verbose logging
strict Fail on unparsed triples
xml_entities Use XML entities in RDF/XML output
working_directory Working directory for file paths
extra_args Escape hatch for rarely-used flags (list of strings)

How to Contribute

  1. Fork the repository
  2. Create a feature branch from main:
    git checkout -b feature/your-feature
    
  3. Install dev dependencies:
    uv sync --dev
    
  4. Make your changes and ensure code quality:
    uv run ruff format src/
    uv run ruff check src/
    
  5. Commit your changes and push to your fork
  6. Open a Pull Request against main

The main branch is protected — all changes must go through a PR.

License

BSD 2-Clause License

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robot_tool_mcp-1.2.2.tar.gz (91.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robot_tool_mcp-1.2.2-py3-none-any.whl (31.8 kB view details)

Uploaded Python 3

File details

Details for the file robot_tool_mcp-1.2.2.tar.gz.

File metadata

  • Download URL: robot_tool_mcp-1.2.2.tar.gz
  • Upload date:
  • Size: 91.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for robot_tool_mcp-1.2.2.tar.gz
Algorithm Hash digest
SHA256 a2eea8a12598b895fc307f52145800dc3659cfaf7688cec65caf62df4af1f9c0
MD5 eeda1b7a224901ce1acfe6677580ffea
BLAKE2b-256 0be995909209adfab97460b976fab1db4ed77a140f63d67b1aa6ee6c86d961f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for robot_tool_mcp-1.2.2.tar.gz:

Publisher: release.yml on musen-lab/robot-tool-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file robot_tool_mcp-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: robot_tool_mcp-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 31.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for robot_tool_mcp-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e882423302a1be54e5019e6b3f44f965318ecd0580d0102911f7cff419fc1fac
MD5 bcd8b60220c9206f4d32541d7f56b728
BLAKE2b-256 db2a4836429a90569a19edd5af2fcaf57178d17c72091aca81f2b6cdda31cde5

See more details on using hashes here.

Provenance

The following attestation bundles were made for robot_tool_mcp-1.2.2-py3-none-any.whl:

Publisher: release.yml on musen-lab/robot-tool-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.2.2 This release

2 files

1.2.1

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page