Repository navigation
Support install action via standard registry specification #1590
Closed
mquan
started this conversation in
Ideas - General
Replies: 1 comment
|
We've limited Discussions in this repository to meeting notes and are closing this thread. To continue the conversation, pick a channel from Contributor Communication. Thanks for posting. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Is your feature request related to a problem? Please describe.
Currently installing MCP servers is cumbersome and requires technical knowledge. Users must work with JSON, and the experience can vary between clients as described in #292.
This results in clients maintaining their own registries, concentrating powers in a few selected servers. We need a standard and simple installation procedure to promote adoption from less technical users. Users should be able to click on a link to install/activate the server.
Describe the solution you'd like
The registry's server.json standard solves half of the problem. To fully resolve the issue, MCP clients should support a standardized installation protocol in the following way
/install?server=BASE64_ENCODED_SERVER_SPECactionThis should work for both desktop and web apps as installation links can be crafted in the following manner
my-mcpclient://install?server=BASE64_ENCODED_SERVER_SPEChttps://www.my-mcpclient.com/install?server=BASE64_ENCODED_SERVER_SPECIt's important to note that
BASE64_ENCODED_SERVER_SPECis NOT the installed server schema, even if a dominant standard emerged. This is the server specification that lists all supported transports and required env variables. This allows clients to pick the most compatible mode to install. More importantly, it allows the link to be publicly sharable (encoded server info with env vars is NOT safe to share publicly)Optionally, the install action can support a server registry param, e.g.
/install?registry-server=https://registry.modelcontextprotocol.io/v0/servers/{server_id}. This approach allows the link to be more compact but depends on centralized registries. TheBASE64_ENCODED_SERVER_SPECis more portable and works for private servers.Describe alternatives you've considered
I considered passing the encoded installed server json, but this approach suffers from a couple downsides
Additional context
N/A
All reactions