Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Robot Tool

FreeNot checked

Provides an MCP interface to the ROBOT command-line tool for OWL ontology editing, enabling operations like merging, reasoning, and conversion via natural langu

GitHubEmbed

About

Provides an MCP interface to the ROBOT command-line tool for OWL ontology editing, enabling operations like merging, reasoning, and conversion via natural language.

README

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

from github.com/musen-lab/robot-tool-mcp

Installing Robot Tool

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/musen-lab/robot-tool-mcp

FAQ

Is Robot Tool MCP free?

Yes, Robot Tool MCP is free — one-click install via Unyly at no cost.

Does Robot Tool need an API key?

No, Robot Tool runs without API keys or environment variables.

Is Robot Tool hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Robot Tool in Claude Desktop, Claude Code or Cursor?

Open Robot Tool on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Robot Tool with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs