4 ms·
Can someone help me find an actual explanation of what MCP does? The official MCP documentation completely fails at explaining how it works and what it does. Fo
by thiht 1y ago
Can someone help me find an actual explanation of what MCP does? The official MCP documentation completely fails at explaining how it works and what it does. For example the quick start for server developers[1] doesn’t actually explain anything. Sure in the Python examples they add @mcp annotations but WHAT DOES IT DO? I feel like I’m going crazy reading their docs because there’s nothing of substance in there.
Let’s assume I want to write an MCP HTTP server without a library, just an HTTP handler, how do I do it? What’s its schema? If I want to call an MCP server from curl what endpoint do I call? Can someone help me find where this is documented?
[1]: https://modelcontextprotocol.io/quickstart/server https://modelcontextprotocol.io/quickstart/server
- troupo 1y agoMCP is a server that exposes API endpoints (new vibe term is "tools") MCP clients can query these endpoints (new vibe term is "invoke tools") That is almost the entirety of it. The difference with traditional API endpoints is: they are geared towards LLMs, so LLMs can ask servers to list "tools" and can call these tools at will during execution. It's a vibe-coded spec for an extremely hype-based space.
- thiht 1y agoYes I understand that, but how do I write these endpoints myself without using magic @mcp annotations? After like an hour of searching I finally found the Lifecycle page: https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle#initialization https://modelcontextprotocol.io/specification/2025-06-18/bas... and I think it contains the answers I’m looking for. But I feel this should be roughly explained in the first introduction. Agree that most of the pages feel LLM generated, and borderline unreadable
- troupo 1y agoI would use Elixir and ash_ai :)) https://youtu.be/PSrzruaby1M?si=EEEQtQPOSMaLFJcM https://youtu.be/PSrzruaby1M?si=EEEQtQPOSMaLFJcM (Sorry, I know this isn't really a helpful answer)
- edgolub 1y agoThe reason why they do not expose the underlying server schema, is because you aren't supposed to write your own MCP server from zero, in the same way you aren't supposed to write your own GraphQL Server from zero. Yes, technically you could, but you are "supposed" to just use a library that builds the actual endpoints based on the schema for the version of MCP you are using. And only worry about building your tools, to expose them to a LLM, so it can be consumed (LLM function calling, but with lots of abstractions to make it more developer friendly)
- drewnoakes 1y agoI agree with this, and my preference is generally to use a nice library for such things, but understanding the low level protocol and its capabilities helps me conceptualise the interactions more concretely, and understand more of what a given library is doing for me when I use it. In that way, a clear explanation of a protocol has a lot of value for me.
- thiht 1y agoI can get behind that, but if you’re not supposed to write your MCP server yourself, it makes even more sense to explain how it works so people understand why
- orliesaurus 1y agoSadly you are right, everything is easy and stupidly made convenient these days ... Or maybe I am just a grumpy guy today! But I do remember when you had to struggle to get software to work, there was no developer experience back then :)