im building som dum lil foss llm thingy for godot and now im interested in letting users implement their own MCP servers.
so like - okay, the model context protocol page says, that most servers use stdio for every interaction. So now - the request format can be seen here, its apparently a JSONrpc thing.
so - first thing i want to do is retrieving all the capabilities the server has.
i looked through all the tabs in the latest docs, but could not find the command for listing all the capabilities. so i installed some filesystem mcp server which runs well and tried this:
PS C:\Users\praktikant> npx -y @modelcontextprotocol/server-filesystem "C:\Users\praktikant\Desktop"
Secure MCP Filesystem Server running on stdio
Allowed directories: [ 'C:\\Users\\praktikant\\Desktop' ]
{\
"jsonrpc": "2.0",\
"id": 1,\
"method": "capabilities",\
"params": {}\
}
- aaaaaand nothing was returned. no string, no nothing.
so maybe its not a string which is sent via stdio but some other byte-based thing?
if anyone has experience with this, or is gud at guessing, pls tell me what u think i might be missing here <3
Isn’t the MCP protocol simply a JSON REST API? You can use any lib that does HTTP requests to access a server or use any HTTP framework to make a server.
no… turns out MCP servers are run and downloaded using mainly npx and stuff. I would LOVE it if it were just a rest api. But nope… because stuff like file access is also possible! So that data obv can’t leave ur PC…
Json messages passed through stdio. There are also SSE servers that will run over http. It’s more complicated than rest since you use http to open a similar json messaging channel
https://chatgpt.com/share/67f3f175-5bd4-8003-8dd0-3acbcd577b7e
I have no clue, but maybe this is helpful.