robot-tool-mcp

robot-tool-mcp

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

Category
Visit Server

README

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured