MCP Servers
DSCC talks to MCP (Model Context Protocol) servers to expand its tool
surface. Configure servers under
settings.mcpServers.<name>
(crates/runtime/src/config.rs:531–550).
Transports
Supported transport types (config.rs:75–83,
mcp_client.rs:7–46):
| Type | Use |
|---|---|
stdio |
Spawn local command, talk over stdin/stdout |
sse |
Server-Sent Events remote |
http |
HTTP remote |
ws |
WebSocket remote |
sdk |
In-process SDK server |
managed-proxy |
DSCC-managed proxy |
Stdio example
{
"mcpServers": {
"my-server": {
"type": "stdio",
"command": "/usr/local/bin/my-mcp",
"args": ["--port", "8080"],
"env": {"MY_VAR": "value"}
}
}
}
Remote fields
For sse, http, ws:
| Field | Purpose |
|---|---|
url |
Server endpoint |
headers |
Static headers map |
headersHelper |
Command producing headers at call time |
oauth |
Optional per-server OAuth block |
The oauth block supports OIDC metadata discovery via
oauth.authServerMetadataUrl, callback port, and client
id.
Tool name normalization
From crates/runtime/src/mcp.rs:6–37:
- Server name — non-alphanumeric characters become
_. - Tool is exposed to the model as
mcp__<server>__<tool>.
Scope and override
Each server records its scope (User / Project / Local). Later scopes
override earlier ones (mcp.rs:84), matching the settings
precedence in config-files.md.
See also
- config-files.md for settings precedence.
docs/reference/config-schema.mdfor the fullmcpServersschema.