Add MCP - Tool API (mcp_tool) submodule
>>> [!note] Migrated issue
<!-- Drupal.org comment -->
<!-- Migrated from issue #3552145. -->
Reported by: [michaellander](https://www.drupal.org/user/636494)
Related to !37
>>>
<h3 id="summary-problem-motivation">Problem/Motivation</h3>
<p>We want to add support for <a href="https://www.drupal.org/project/tool" title="Tool API module">Tool API</a> natively in the MCP product instead of relying on AI Function calls. This will mean being able to take full advantage of the MCP spec with mapping the additional metadata provided by Tool API tools.</p>
<h3 id="summary-proposed-resolution">Proposed resolution</h3>
<p>Create an <code>mcp_tool</code> submodule, with a plugin that creates a 1:1 relationship for Tool API tools and MCP tools. </p>
<p>We will need to determine a path forward for normalizing Tool API inputs/outputs to match the MCP JSON schema spec. Right now we've been leaning on the AI module normalizer to make this work, but ideally we can solve it use the Drupal core/symfony normalizer capabilities. We also need to decide where this normalizer should live.</p>
<p>Later we can introduce other ways to surface Tool API tools to MCP. For example instead of a 1:1 relationship, provide 3 tools (Discover, Plan, Execute) that allows for dynamic tool discovery/usage, which will assist when a server needs to surface a large number of tools without overwhelming contexts.</p>
<h3 id="summary-remaining-tasks">Remaining tasks</h3>
<p>TBD</p>
<h3 id="summary-ui-changes">User interface changes</h3>
<p>TBD</p>
<h3 id="summary-api-changes">API changes</h3>
<p>TBD</p>
<h3 id="summary-data-model-changes">Data model changes</h3>
<p>TBD</p>
> Related issue: [Issue #3550817](https://www.drupal.org/node/3550817)
issue