robot-tool-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@robot-tool-mcpmerge edit.owl with base.owl and reason using ELK"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 --versionSee ROBOT installation for setup instructions.
Related MCP server: @jingjingbox/mcp-cli-bridge
Installation
With uvx (recommended)
uvx robot-tool-mcpFrom source
git clone https://github.com/<owner>/robot-mcp.git
cd robot-mcp
uv run robot-mcpClaude 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 |
| Add metadata annotations to an ontology |
| Simplify class hierarchies by removing intermediates |
| Transform ontology between formats (OWL, OBO, TTL, etc.) |
| Compare two ontologies semantically |
| Convert shortcut annotations into OWL axioms |
| Debug inferred statements with minimal explanations |
| Generate tabular output (CSV, TSV, JSON, HTML, XLSX) |
| Create a subset module (STAR, BOT, TOP, MIREOT) |
| Selectively copy axioms (inverse of remove) |
| Assert inferred superclass relationships |
| Compute ontology metrics and statistics |
| Combine multiple ontologies into one |
| Cache imported ontologies locally |
| Execute SPARQL queries (SELECT, ASK, CONSTRUCT, UPDATE) |
| Run OWL reasoner (ELK, HermiT, JFact, Whelk) |
| Remove redundant subClassOf axioms |
| Convert equivalence axioms to subclass axioms |
| Eliminate selected axioms (inverse of filter) |
| Modify entity IRIs |
| Fix common ontology problems |
| Run quality control checks with violation report |
| Convert tabular data (CSV/TSV) into OWL |
| Remove axioms of one ontology from another |
| Check OWL 2 profile conformance (EL/RL/QL/DL) |
| 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.owlArgument mapping rules:
Underscores become hyphens:
ontology_iri→--ontology-iriLists repeat the flag:
{"input": ["a.owl", "b.owl"]}→--input a.owl --input b.owlBooleans 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 |
| XML catalog file for resolving imports |
| JSON-LD prefix file |
| Add individual prefixes (list) |
| Disable default prefixes |
| Enable verbose logging |
| Fail on unparsed triples |
| Use XML entities in RDF/XML output |
| Working directory for file paths |
| Escape hatch for rarely-used flags (list of strings) |
How to Contribute
Fork the repository
Create a feature branch from
main:git checkout -b feature/your-featureInstall dev dependencies:
uv sync --devMake your changes and ensure code quality:
uv run ruff format src/ uv run ruff check src/Commit your changes and push to your fork
Open a Pull Request against
main
The main branch is protected — all changes must go through a PR.
License
BSD 2-Clause License
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/musen-lab/robot-tool-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server