Replies: 2 comments 4 replies
-
Thanks for opening this! We have discussed similar ideas in the past, but struggled to identify the concrete use cases for configuration. Knowing those might help clarify whether we need something highly generic, or whether something more specific might do. The roots feature actually emerged out of these discussions, as that felt like a specific reification of configuration that's quite useful. Do you happen to have examples of the sorts of things that Smithery servers use for configuration? |
Beta Was this translation helpful? Give feedback.
-
Closing this, since I think OAuth and Well known (#69) should resolve this use case |
Beta Was this translation helpful? Give feedback.
-
Pre-submission Checklist
Your Idea
I would like to propose adding configuration as part of the official MCP spec. Most stdio servers have some CLI arguments or environmental variables, but it's impossible to configure SSE servers within the protocol itself.
Configuration can be designed as a request method to be MCP-compatible. This will be an endpoint that allows SSE servers to be configured with things like API keys, etc.
I have implemented a working draft of this. Example:
The following request performs a
method: "config"
call to the MCP server. The MCP server can define an arbitrary JSONSchema to tell the client how to make this configuration.https://github.com/smithery-ai/typescript-sdk/blob/c8c88cd8b89434450afb4c98cfdcc3737aa26c16/src/examples/simple.ts#L40
Here's the request schema:
https://github.com/smithery-ai/typescript-sdk/blob/c8c88cd8b89434450afb4c98cfdcc3737aa26c16/src/config.ts#L28
On Smithery, we've cataloged 100+ configs for spawning stdio MCPs and we find that JSONSchema covers pretty much all configs out there necessary to start a server.
Open to discussing any improvements or modifications!
(This is somewhat related to: #64)
Scope
Beta Was this translation helpful? Give feedback.
All reactions