

<!DOCTYPE html>

<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=Edge">

  <link rel="stylesheet" href="/protege-mcp/assets/css/just-the-docs-default.css">

  <link rel="stylesheet" href="/protege-mcp/assets/css/just-the-docs-head-nav.css" id="jtd-head-nav-stylesheet">

  <style id="jtd-nav-activation">
  
    .site-nav ul li a {
      background-image: none;
    }

  </style>

  

  
    <script src="/protege-mcp/assets/js/vendor/lunr.min.js"></script>
  

  <script src="/protege-mcp/assets/js/just-the-docs.js"></script>

  <meta name="viewport" content="width=device-width, initial-scale=1">

  



  <!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Protégé MCP | A Protégé Desktop plugin that runs a local MCP server, giving AI tools live, gated access to the ontology you have open — plus an in-app Ontology Assistant.</title>
<meta name="generator" content="Jekyll v3.10.0" />
<meta property="og:title" content="Protégé MCP" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="A Protégé Desktop plugin that runs a local MCP server, giving AI tools live, gated access to the ontology you have open — plus an in-app Ontology Assistant." />
<meta property="og:description" content="A Protégé Desktop plugin that runs a local MCP server, giving AI tools live, gated access to the ontology you have open — plus an in-app Ontology Assistant." />
<link rel="canonical" href="https://hakjuoh.github.io/protege-mcp/assets/css/just-the-docs-head-nav.css" />
<meta property="og:url" content="https://hakjuoh.github.io/protege-mcp/assets/css/just-the-docs-head-nav.css" />
<meta property="og:site_name" content="Protégé MCP" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="Protégé MCP" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebPage","description":"A Protégé Desktop plugin that runs a local MCP server, giving AI tools live, gated access to the ontology you have open — plus an in-app Ontology Assistant.","headline":"Protégé MCP","url":"https://hakjuoh.github.io/protege-mcp/assets/css/just-the-docs-head-nav.css"}</script>
<!-- End Jekyll SEO tag -->


  <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap"><meta name="color-scheme" content="light dark">
<style>
  html[data-theme="dark"] { background-color: #09090b; color-scheme: dark; }
  html[data-theme="light"] { color-scheme: light; }
</style>

<script>
  (function () {
    // Mark the document JS-capable (before <body> paints) so CSS can hide the
    // toggle when JS is off — its click handler only attaches on load.
    document.documentElement.classList.add("js");

    var PREF_KEY = "jtd-theme"; // 'light' | 'dark' | 'system'
    var CSS_BASE = "/protege-mcp/assets/css/just-the-docs-";

    function osDark() {
      return !!(window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches);
    }
    function pref() {
      try { return localStorage.getItem(PREF_KEY) || "system"; } catch (e) { return "system"; }
    }
    function resolve(p) {
      return p === "dark" || (p !== "light" && osDark()) ? "dark" : "light";
    }
    // The first Just the Docs stylesheet (excluding the head-nav helper) is the one
    // jtd.setTheme swaps; target it the same way for consistency.
    function themeLink() {
      var links = document.querySelectorAll('link[rel="stylesheet"]');
      for (var i = 0; i < links.length; i++) {
        var h = links[i].getAttribute("href") || "";
        if (h.indexOf("just-the-docs-") !== -1 && h.indexOf("head-nav") === -1) return links[i];
      }
      return null;
    }
    function apply(scheme) {
      var link = themeLink();
      // Only swap the file when we actually need dark (default.css already == light),
      // avoiding an extra fetch for the common light case.
      if (link && scheme === "dark") link.setAttribute("href", CSS_BASE + "dark.css");
      else if (link && scheme === "light" && (link.getAttribute("href") || "").indexOf("-dark.css") !== -1) {
        link.setAttribute("href", CSS_BASE + "light.css");
      }
      document.documentElement.setAttribute("data-theme", scheme);
    }
    function current() {
      return document.documentElement.getAttribute("data-theme") || resolve(pref());
    }
    // Keep the accessible NAME stable ("Toggle color theme"); only the tooltip
    // (title) + aria-pressed track state, so there is no name/paint mismatch in
    // the brief window before this runs. Updates every .theme-toggle (desktop +
    // the cloned mobile one). Icon swap is CSS-driven off html[data-theme].
    function syncButtons() {
      var dark = current() === "dark";
      var title = dark ? "Switch to light theme" : "Switch to dark theme";
      var list = document.querySelectorAll(".theme-toggle");
      for (var i = 0; i < list.length; i++) {
        list[i].setAttribute("aria-pressed", String(dark));
        list[i].setAttribute("title", title);
      }
    }
    function toggle() {
      var next = current() === "dark" ? "light" : "dark";
      try { localStorage.setItem(PREF_KEY, next); } catch (e) {}
      apply(next);
      syncButtons();
    }
    // Surface a toggle in the always-visible mobile bar (.site-header): the
    // original lives in .main-header, which the theme hides below the md
    // breakpoint. CSS hides this clone at md+ so exactly one shows per width.
    function mountMobileToggle() {
      var bar = document.querySelector(".site-header");
      var original = document.getElementById("theme-toggle");
      if (!bar || !original || bar.querySelector(".theme-toggle")) return;
      var clone = original.cloneNode(true);
      clone.removeAttribute("id");
      var anchor = bar.querySelector("#menu-button, .site-button");
      if (anchor) bar.insertBefore(clone, anchor);
      else bar.appendChild(clone);
    }

    // No-FOUC: apply the resolved theme immediately, still inside <head>.
    apply(resolve(pref()));

    // Follow the OS while the user hasn't made an explicit choice.
    if (window.matchMedia) {
      var mq = window.matchMedia("(prefers-color-scheme: dark)");
      var onOS = function () {
        if (pref() === "system") { apply(resolve("system")); syncButtons(); }
      };
      if (mq.addEventListener) mq.addEventListener("change", onOS);
      else if (mq.addListener) mq.addListener(onOS);
    }

    document.addEventListener("DOMContentLoaded", function () {
      mountMobileToggle();
      var list = document.querySelectorAll(".theme-toggle");
      for (var i = 0; i < list.length; i++) list[i].addEventListener("click", toggle);
      syncButtons();
    });

    // Expose for anything else that wants to flip the theme.
    window.jtdToggleTheme = toggle;
  })();
</script>


</head>

<body>
  <a class="skip-to-main" href="#main-content">Skip to main content</a>
  <svg xmlns="http://www.w3.org/2000/svg" class="d-none">
  <symbol id="svg-link" viewBox="0 0 24 24">
  <title>Link</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link">
    <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
  </svg>
</symbol>

  <symbol id="svg-menu" viewBox="0 0 24 24">
  <title>Menu</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu">
    <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
  </svg>
</symbol>

  <symbol id="svg-arrow-right" viewBox="0 0 24 24">
  <title>Expand</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
    <polyline points="9 18 15 12 9 6"></polyline>
  </svg>
</symbol>

  <!-- Feather. MIT License: https://github.com/feathericons/feather/blob/master/LICENSE -->
<symbol id="svg-external-link" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link">
  <title id="svg-external-link-title">(external link)</title>
  <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line>
</symbol>

  
    <symbol id="svg-doc" viewBox="0 0 24 24">
  <title>Document</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
    <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
  </svg>
</symbol>

    <symbol id="svg-search" viewBox="0 0 24 24">
  <title>Search</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
    <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
  </svg>
</symbol>

  
  
    <!-- Bootstrap Icons. MIT License: https://github.com/twbs/icons/blob/main/LICENSE.md -->
<symbol id="svg-copy" viewBox="0 0 16 16">
  <title>Copy</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16">
    <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/>
    <path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/>
  </svg>
</symbol>
<symbol id="svg-copied" viewBox="0 0 16 16">
  <title>Copied</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard-check-fill" viewBox="0 0 16 16">
    <path d="M6.5 0A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3Zm3 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3Z"/>
    <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1A2.5 2.5 0 0 1 9.5 5h-3A2.5 2.5 0 0 1 4 2.5v-1Zm6.854 7.354-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708Z"/>
  </svg>
</symbol>

  
</svg>

  
    <header class="side-bar">
  <div class="site-header">
    <a href="/protege-mcp/" class="site-title lh-tight">
  Protégé MCP

</a>
    <button id="menu-button" class="site-button btn-reset" aria-label="Menu" aria-expanded="false">
      <svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg>
    </button>
  </div>

  <nav aria-label="Main" id="site-nav" class="site-nav">
  
  
    <ul class="nav-list"><li class="nav-list-item"><a href="/protege-mcp/" class="nav-list-link">Home</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Installation submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/protege-mcp/installation.html" class="nav-list-link">Installation</a><ul class="nav-list"><li class="nav-list-item"><a href="/protege-mcp/check-for-plugins.html" class="nav-list-link">Install via Check for plugins</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Connecting a client submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/protege-mcp/connect/" class="nav-list-link">Connecting a client</a><ul class="nav-list"><li class="nav-list-item"><a href="/protege-mcp/connect/claude-code.html" class="nav-list-link">Claude Code</a></li><li class="nav-list-item"><a href="/protege-mcp/connect/codex-cli.html" class="nav-list-link">Codex CLI</a></li><li class="nav-list-item"><a href="/protege-mcp/connect/vs-code.html" class="nav-list-link">VS Code</a></li><li class="nav-list-item"><a href="/protege-mcp/connect/claude-desktop.html" class="nav-list-link">Claude Desktop</a></li></ul></li><li class="nav-list-item"><a href="/protege-mcp/ontology-assistant.html" class="nav-list-link">Ontology Assistant</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Tools submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/protege-mcp/tools/" class="nav-list-link">Tools</a><ul class="nav-list"><li class="nav-list-item"><a href="/protege-mcp/tools/explore-search.html" class="nav-list-link">Explore & search</a></li><li class="nav-list-item"><a href="/protege-mcp/tools/context-validation.html" class="nav-list-link">Context & validation</a></li><li class="nav-list-item"><a href="/protege-mcp/tools/editing.html" class="nav-list-link">Editing — entities & axioms</a></li><li class="nav-list-item"><a href="/protege-mcp/tools/metadata-imports.html" class="nav-list-link">Ontology metadata & imports</a></li><li class="nav-list-item"><a href="/protege-mcp/tools/documents.html" class="nav-list-link">Documents</a></li><li class="nav-list-item"><a href="/protege-mcp/tools/rules.html" class="nav-list-link">Rules (SWRL)</a></li><li class="nav-list-item"><a href="/protege-mcp/tools/reasoning.html" class="nav-list-link">Reasoning</a></li><li class="nav-list-item"><a href="/protege-mcp/tools/sparql.html" class="nav-list-link">SPARQL</a></li><li class="nav-list-item"><a href="/protege-mcp/tools/history.html" class="nav-list-link">History & persistence</a></li><li class="nav-list-item"><a href="/protege-mcp/tools/axiom-types.html" class="nav-list-link">Axiom types</a></li><li class="nav-list-item"><a href="/protege-mcp/tools/prompts.html" class="nav-list-link">Guided workflows (prompts)</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Contributing submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/protege-mcp/contributing.html" class="nav-list-link">Contributing</a><ul class="nav-list"><li class="nav-list-item"><a href="/protege-mcp/smoke-test.html" class="nav-list-link">Live smoke test</a></li></ul></li><li class="nav-list-item"><a href="/protege-mcp/versioning.html" class="nav-list-link">Versioning & releases</a></li><li class="nav-list-item"><a href="/protege-mcp/changelog.html" class="nav-list-link">Changelog</a></li></ul>
  <ul class="nav-list"><li class="nav-list-item external">
          <a href="https://github.com/hakjuoh/protege-mcp" class="nav-list-link external"
            
          >
            Project on GitHub
            <svg viewBox="0 0 24 24" aria-labelledby="svg-external-link-title"><use xlink:href="#svg-external-link"></use></svg>
          </a>
        </li><li class="nav-list-item external">
          <a href="https://github.com/hakjuoh/protege-mcp/releases" class="nav-list-link external"
            
          >
            Releases
            <svg viewBox="0 0 24 24" aria-labelledby="svg-external-link-title"><use xlink:href="#svg-external-link"></use></svg>
          </a>
        </li></ul>
</nav>


<div class="d-md-block d-none site-footer">
  
  
    This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.
  
  </div>
</header>

  
  <div class="main" id="top">
    <div id="main-header" class="main-header">
  
    

<div class="search" role="search">
  <div class="search-input-wrap">
    <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search Protégé MCP" autocomplete="off">
    <label for="search-input" class="search-label">
      <span class="sr-only">Search Protégé MCP</span>
      <svg viewBox="0 0 24 24" class="search-icon" aria-hidden="true"><use xlink:href="#svg-search"></use></svg>
    </label>
  </div>
  <div id="search-results" class="search-results"></div>
</div>

  
  <button type="button" id="theme-toggle" class="theme-toggle" aria-label="Toggle color theme" title="Switch to dark theme" aria-pressed="false">
  <svg class="theme-toggle-icon theme-toggle-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
    <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
  </svg>
  <svg class="theme-toggle-icon theme-toggle-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
    <circle cx="12" cy="12" r="4"></circle>
    <path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"></path>
  </svg>
</button>

  
    <nav aria-label="Auxiliary" class="aux-nav">
  <ul class="aux-nav-list">
    
      <li class="aux-nav-list-item">
        <a href="https://github.com/hakjuoh/protege-mcp" class="site-button"
          
          target="_blank" rel="noopener noreferrer"
          
        >
          GitHub
        </a>
      </li>
    
  </ul>
</nav>

  
</div>

    <div class="main-content-wrap">
      
      <div id="main-content" class="main-content">
        <main>
          
            

          

          
            
          
        </main>
        
<hr>
<footer>
  

  <p class="text-small mb-0">Protégé MCP is licensed under the BSD 2-Clause License. Protégé is a trademark of Stanford University.</p>

  
    <div class="d-flex mt-2">
      
      
        <p class="text-small mb-0">
          <a href="https://github.com/hakjuoh/protege-mcp/tree/main/docs/assets/css/just-the-docs-head-nav.css" id="edit-this-page">Edit this page on GitHub</a>
        </p>
      
    </div>
  <div class="d-md-none mt-4 fs-2">
    
    
      This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.
    
  </div>
</footer>

      </div>
    </div>
    
      

<div class="search-overlay"></div>

    
  </div>

  
</body>
</html>

