I'm not even sure comparing it to USB is helpful, since USB is just a transport protocol, not communication protocol. Just because two devices have usb ports doesn't mean they can be connected together, otherwise we wouldn't need device drivers. So in this instance it's more of a unified device driver, rather than a port.
I totally agree. As someone with an EE background, this metaphor makes me a little physically uncomfortable. Considering that the developers and users of mcp are almost all programmers who need to use cli, I really don't understand why they don't tell the truth to programmers.
- The official example strongly promotes the Anthropic API, which is on GitHub. This is clear evidence.
- There is no clear explanation of the coupling between the system prompt and the tool call. Even if it mentions the open source Gemma or Deepseek, it would be much better.
The official attitude makes it difficult to trust this project.
The point you made is exactly the cunning part. Anyone can copy it, but without official support, it is simply impossible: this is pure community exploitation
If you want an LLM to use a tool, you just need to implement a parser in your LLM client that extracts the tool call from the LLM's response, then give the LLM a syntax it can use to make the tool call.
For example, in Roo Code:
```
TOOL USE
You have access to a set of tools that are executed upon the user's approval. You can use one tool per message, and will receive the result of that tool use in the user's response. You use tools step-by-step to accomplish a given task, with each tool use informed by the result of the previous tool use.
# Tool Use Formatting
Tool use is formatted using XML-style tags. The tool name is enclosed in opening and closing tags, and each parameter is similarly enclosed within its own set of tags. Here's the structure: