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

  • keepthepace@slrpnk.net
    link
    fedilink
    English
    arrow-up
    2
    ·
    20 天前

    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.

    • Smorty [she/her]@lemmy.blahaj.zoneOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      20 天前

      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…

      • SexyVetra
        link
        fedilink
        English
        arrow-up
        1
        ·
        20 天前

        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