saberience 3 days ago

It's not complicated at all.

All it does is expose methods as a "tool" which is then brought back to your LLM and defined with its name, description and input parameters.

E.g. Name: "MySqlTool", Description: "Allows arbitrary MySQL queries to the XYZ database", Parameters: "string: sqlToExecute"

The MCP Client (e.g. Claude Desktop, Claude Code), is configured to talk to an MCP server via stdio or sse, and calls a method like "tools/list", the server just sends a list back (in JSON) of all the tools, names, descriptions, params.

Then, if the LLM gets a query that mentions e.g. do a web search, or a web scraping, etc, it just outputs a tool use token then stops inferencing. Then the code calls that tool via stdio/sse (json-rpc), to the MCP server, which just runs that method, returns the result, then its added to the message history in the LLM, then inferencing runs again from the beginning.

1
runako 3 days ago

I think people who have been building with LLMs have a different view on what is complicated vs not :-)

It may be easy for you to configure, but you dropped some acronyms in there that I would have to look up. I have definitely not personally set up anything like this.

bavell 3 days ago

It's basically a simple rpc server, there's nothing complicated going on...

runako 3 days ago

Then please write up and share here some example usage documentation for someone who has never used MCP. (That was my suggestion upthread.)

As a side note, do people here not realize that less complicated examples are often better for learning? Have we as a community forgotten this basic truism?

Since it’s not complicated, you should be able to write it up quickly, and parallel commmenters to mine suggest there is an audience for such documentation.

Thanks!